Database Service
Introdução
Módulo Python para operações de banco de dados via API REST com autenticação Keycloak.
Índice
- Visão Geral
- Configuração
- DatabaseService
- Inserir Cotas no Banco
- Inserir Estações no Banco
- Obter Códigos de Estações
- Inserir Status de Estações
- Inserir Cotas PCD
- Obter Data do Último Registro
- Obter Cotas de Estação
- 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.