Skip to content
This repository has been archived by the owner on Oct 2, 2023. It is now read-only.

Integração com terceiros

Ana Paula Gomes edited this page Apr 23, 2021 · 3 revisions

Câmara Municipal de Feira de Santana

A Câmara Municipal está trabalhando conosco para liberar os dados disponíveis no portal da transparência através de um webservice. Antes de acessá-lo, precisamos importar os dados históricos e então começar a consumir do serviço disponibilizado.

Fizemos um compromisso de acessar o webservice apenas uma vez por dia para evitar sobrecarga nos servidores do município.

Importação dos dados históricos

A Câmara Municipal disponibilizou os dados de seu banco de dados através de arquivos CSV. Os seguintes comandos limpam as informações e salvam no nosso banco de dados:

./manage.py import citycouncil_expenses /home/maria/Dados/despesas.csv
./manage.py import citycouncil_contracts /home/maria/Dados/contratos.csv
./manage.py import citycouncil_bids /home/maria/dados/licitacoes.csv  
./manage.py import citycouncil_revenues /home/maria/receitas.csv
./manage.py import citycouncil_contract_files /home/maria/arquivo-contratos.csv
./manage.py import citycouncil_bid_files /home/maria/arquivo-licitacoes.csv

Para apagar todos os dados de uma tabela antes da importação basta adicionar o parâmetro --drop-all ao comando.

Importante: os comandos relacionados a arquivo devem ser executados por último; dessa forma, poderão ser conectados aos seus respectivos objetos corretamente.

Webservice

O endpoint é /webservice/. Para comunicação, devemos enviar uma requisição GET com data (aaaa-mm-dd) e token como parâmetros. Exemplo:

requests.get(
    'http://<HOST>/webservice/',
    params={'data': '2020-05-05', 'token': 'token-secreto'},
    headers={'User-Agent': 'Maria Quitéria'},
).json()

Exemplo de payload:

{
	'inclusoesContrato': [],
	'alteracoesContrato': [],
	'exclusoesContrato': [],
	'inclusoesLicitacao': [],
	'alteracoesLicitacao': [{
		'codLic': '214',
		'codTipoLic': '7',
		'numLic': '004/2020',
		'numTipoLic': '004/2020',
		'objetoLic': 'Contratação de pessoa jurídica do ramo de atividade pertinente para fornecimento, por demanda, de medalhas de condecorações para homenagens prestadas pela Câmara Municipal de Feira de Santana-BA, conforme condições, quantidades e especificações constantes no Edital e seus Anexos.',
		'dtLic': '2020-03-26 09:00:00'
	}],
	'exclusoesLicitacao': [],
	'inclusoesReceita': [],
	'alteracoesReceita': [],
	'exclusoesReceita': [],
	'inclusoesDespesa': [],
	'alteracoesDespesa': [],
	'exclusoesDespesa': []
}

A sincronização pode ser executada através do comando:

python manage.py citycouncil_sync

O comando acima vai sempre pegar a data de ontem. Para passar uma data específica:

python manage.py citycouncil_sync --date 2020-10-05

Mensagens de erro

  • Método não suportado.
  • A data informada é menor do que a data limite.
  • Os parâmetros enviados são inválidos.
  • Já existe uma requisição em andamento.
Clone this wiki locally