Skip to main content

Database Service

Introdução

Módulo Python para operações de banco de dados via API REST com autenticação Keycloak.

Índice

  1. Visão Geral
  2. Configuração
  3. DatabaseService
  4. Inserir Cotas no Banco
  5. Inserir Estações no Banco
  6. Obter Códigos de Estações
  7. Inserir Status de Estações
  8. Inserir Cotas PCD
  9. Obter Data do Último Registro
  10. Obter Cotas de Estação
  11. Obter Buracos PCD

Visão Geral

Este módulo realiza:

  • Inserção de dados (cotas, estações, status) via API
  • Consulta de informações básicas do banco
  • Gerenciamento automático de tokens Keycloak
  • Tratamento de erros e logging

Fluxo principal:

Configuração

Variáveis obrigatórias no .env:

API_URL = "http://endpoint-api/"  # URL base da API  

DatabaseService

Classe principal para interação com o banco de dados remoto.

Inserir Cotas no Banco

Insere registros de cotas horárias na tabela específica.

Parâmetros:
cotas (dict): Dados de cotas.

Inserir Estações no Banco

Cadastra novas estações hidrométricas.

Parâmetros:
estacoes (list): Lista de dicionários com dados completos das estações.

Obter Códigos de Estações

Consulta todos os códigos de estações cadastradas.

Retorno:
list | None: Lista de códigos numéricos ou None em falhas.

Inserir Status de Estações

Atualiza status de documentação das estações.

Parâmetros:
estacao (dict): Dados de status.

Retorno:
dict | None: Resposta da API ou None em erros.

Inserir Cotas PCD

Persiste dados de cotas telemetricas PCD.

Obter Data do Último Registro

Consulta a data mais recente com registro de cota.

Obter Cotas de Estação

Recupera dados históricos de cotas por tipo.

Parâmetros:
codigo_estacao (int): Código ANA . tipo_cota (str): Tipo de cota ('regua' ou similar).

Retorno:
dict | None: Dados decodificados ou None.

Obter Buracos PCD

Identifica períodos sem dados PCD para uma estação.