Skip to content

Commit

Permalink
#147 Permitir busca no QD por uma lista de territory_id
Browse files Browse the repository at this point in the history
  • Loading branch information
slfabio committed Oct 5, 2024
1 parent 97de7c1 commit b11a1b9
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 5 deletions.
23 changes: 23 additions & 0 deletions dag_confs/examples_and_tests/qd_list_territory_id_example.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
dag:
id: qd_list_territory_id_example
description: DAG de teste com múltiplos territory_id
schedule: 0 8 * * MON-FRI
search:
header: "Teste com múltiplos territory_id"
territory_id:
- 3300100
- 3300159
- 3300209
- 3305703
sources:
- QD
terms:
- LGPD
- RIO DE JANEIRO
force_rematch: On
ignore_signature_match: On
report:
emails:
- destination@economia.gov.br
subject: "Teste do Ro-dou"
skip_null: False
2 changes: 1 addition & 1 deletion docs/docs/como_funciona/parametros.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ A página abaixo lista os parâmetros configuráveis nos arquivos YAML:
- **is_exact_search**: Busca somente o termo exato. Valores: True ou False. Default: True.
- **sources**: Fontes de pesquisa dos diários oficiais. Pode ser uma ou uma lista. Opções disponíveis: DOU, QD, INLABS.
- **terms**: Lista de termos a serem buscados. Para o INLABS podem ser utilizados operadores avançados de busca.
- **territory_id**: Identificador do id do município. Necessário para buscar no Querido Diário.
- **territory_id**: Lista de identificadores do id do município. Necessário para buscar no Querido Diário.

## Parâmetros do Relatório (Report)
- **attach_csv**: Anexar no email o resultado da pesquisa em CSV.
Expand Down
16 changes: 14 additions & 2 deletions schemas/ro-dou.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,21 @@
}
},
"territory_id": {
"type": "integer",
"description": "Id do território no Querido Diário - QD"
"oneOf": [
{
"type": "integer",
"description": "Id do território no Querido Diário - QD",
},
{
"type": "array",
"description": "Lista de Id do território no Querido Diário - QD",
"items": {
"type": "integer"
}
}
]
},

"terms": {
"oneOf": [
{
Expand Down
2 changes: 1 addition & 1 deletion src/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class SearchConfig(BaseModel):
description="Lista de fontes de dados para pesquisar (Querido Diário [QD], "
"Diário Oficial da União [DOU], INLABS). Default: DOU.",
)
territory_id: Optional[int] = Field(
territory_id: Optional[Union[int, List[int]]] = Field(
default=None,
description="ID do território no Querido Diário para filtragem "
"baseada em localização",
Expand Down
4 changes: 3 additions & 1 deletion src/searchers.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,9 @@ def _search_term(
payload = _build_query_payload(search_term, reference_date)

if territory_id:
payload.append(("territory_ids", territory_id))
if isinstance(territory_id, int): territory_id = [territory_id]
for terr_id in territory_id:
payload.append(("territory_ids", terr_id))

req_result = requests.get(self.API_BASE_URL, params=payload)

Expand Down

0 comments on commit b11a1b9

Please sign in to comment.