#' PostgreSQL full-text search
#'
#' @param con connection
#' @param tbl table
#' @param assuntos Vetor de assuntos
#' @param contribuintes vetor de contribuintes
#' @param acordaos vetor de acórdãos
#' @param processos vetor de processos
#' @param start start date in the format "yyyy-mm-dd"
#' @param end end date in the format "yyyy-mm-dd"
#' @param query words to be searched. Separate by "&" (AND), "|" (OR),
#' or "<->" (FOLLOWED BY) to search for more than one word.
#'
#' @return A data.frame with the cjpg decisions according to
#' @export
#'
#' @examples
#' \dontrun{
#' dplyr::copy_to(con, "julgados", df)
#' df <- psql_carf_query(con, "julgados", "IRPF")
#' }
psql_carf_query <- function(con, tbl, query = "",assuntos = NULL,contribuintes = NULL, acordaos = NULL, processos = NULL,start = "2019-01-01", end = NULL) {
target <- "document_tokens"
if (is.null(end)) end <- Sys.Date()
start <- as.Date(start)
if (!is.null(assuntos) & !is.null(contribuintes) & !is.null(acordaos) & !is.null(processos) & query != "" ){
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.assunto IN ({assuntos*})
AND {`tbl`}.contribuinte IN ({contribuintes*})
AND {`tbl`}.data_sessao BETWEEN ({start}) AND ({end})
AND {`tbl`}.acordao IN ({acordaos*})
AND {`tbl`}.processo IN ({processos*})
AND {`tbl`}.{`target`} @@ websearch_to_tsquery({query})", .con = con)
} else if (is.null(assuntos) & !is.null(contribuintes) & !is.null(acordaos) & !is.null(processos) & query != "" ){
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.contribuinte IN ({contribuintes*})
AND {`tbl`}.data_sessao BETWEEN ({start}) AND ({end})
AND {`tbl`}.acordao IN ({acordaos*})
AND {`tbl`}.processo IN ({processos*})
AND {`tbl`}.{`target`} @@ websearch_to_tsquery({query})", .con = con)
} else if (!is.null(assuntos) & is.null(contribuintes) & !is.null(acordaos) & !is.null(processos) & query != "" ){
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.assunto IN ({assuntos*})
AND {`tbl`}.data_sessao BETWEEN ({start}) AND ({end})
AND {`tbl`}.acordao IN ({acordaos*})
AND {`tbl`}.processo IN ({processos*})
AND {`tbl`}.{`target`} @@ websearch_to_tsquery({query})", .con = con)
} else if (!is.null(assuntos) & !is.null(contribuintes) & is.null(acordaos) & !is.null(processos) & query != "" ){
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.assunto IN ({assuntos*})
AND {`tbl`}.contribuinte IN ({contribuintes*})
AND {`tbl`}.data_sessao BETWEEN ({start}) AND ({end})
AND {`tbl`}.processo IN ({processos*})
AND {`tbl`}.{`target`} @@ websearch_to_tsquery({query})", .con = con)
} else if (!is.null(assuntos) & !is.null(contribuintes) & !is.null(acordaos) & is.null(processos) & query != "" ){
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.assunto IN ({assuntos*})
AND {`tbl`}.contribuinte IN ({contribuintes*})
AND {`tbl`}.data_sessao BETWEEN ({start}) AND ({end})
AND {`tbl`}.acordao IN ({acordaos*})
AND {`tbl`}.{`target`} @@ websearch_to_tsquery({query})", .con = con)
} else if (!is.null(assuntos) & !is.null(contribuintes) & !is.null(acordaos) & is.null(processos) & query == "" ) {
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.assunto IN ({assuntos*})
AND {`tbl`}.contribuinte IN ({contribuintes*})
AND {`tbl`}.data_sessao BETWEEN ({start}) AND ({end})
AND {`tbl`}.acordao IN ({acordaos*})
AND {`tbl`}.processo IN ({processos*})", .con = con)
} else
q <- glue::glue_sql("SELECT acordao, processo, contribuinte, data_sessao, ementa, relator,
dispositivo, decisao, votacao, vencido1, vencido2, vencido3,
assunto, subassunto1, subassunto2, subassunto3, inteiro_teor
FROM {`tbl`}
WHERE {`tbl`}.{`target`} @@ websearch_to_tsquery({query})", .con = con)
df <- DBI::dbGetQuery(con, q)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.