Metadata-Version: 2.1
Name: hub77_manager
Version: 0.1.2
Summary: Facilitador para hub das automações e scraper
Home-page: https://github.com/77-Indicadores/modulo_hubdados
Author: Vinicius Moreira
Author-email: vinicius@77indicadores.com.br
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.0.0

# HubDados API - Manager

O `HubDados API - Manager` Ã© uma classe Python que facilita a interaÃ§Ã£o com uma API para gerenciar clientes, queries e logs. Ele tambÃ©m registra logs localmente usando a biblioteca `logging`, garantindo que todos os eventos sejam armazenados tanto localmente quanto remotamente.

---

## Funcionalidades

- **Gerenciamento de Clientes**:
  - Adicionar e remover clientes.

- **Gerenciamento de Queries**:
  - Adicionar, remover e atualizar queries associadas aos clientes.

- **Logs**:
  - Registrar eventos localmente usando `logging`.
  - Enviar logs para a API atravÃ©s de uma requisiÃ§Ã£o POST.

---

## Requisitos

- Python 3.7 ou superior.
- Biblioteca `requests`.

---

## Uso

### Exemplo BÃ¡sico

```python
from client_manager import ClientManager

# ConfiguraÃ§Ã£o inicial
api_url = "https://sua-api.com"
client_manager = ClientManager(api_url)

# ConfiguraÃ§Ã£o do cliente e query padrÃ£o
client_manager.set_config(cliente="cliente_teste", query="query_teste")

# Adicionar um cliente
response = client_manager.add_cliente()
print("Resposta ao adicionar cliente:", response)

# Adicionar uma query ao cliente
response = client_manager.add_query()
print("Resposta ao adicionar query:", response)

# Atualizar o status de uma query com log
response = client_manager.update_query_status(
    status="completo",
    log_content="Query processada com sucesso."
)
print("Resposta ao atualizar status:", response)

# Obter logs de uma query
response = client_manager.get_log()
print("Log obtido:", response)
```

---

## Endpoints da API

O `ClientManager` espera que a API forneÃ§a os seguintes endpoints:

| Endpoint         | MÃ©todo | DescriÃ§Ã£o                      |
|-------------------|--------|--------------------------------|
| `/add_cliente`    | POST   | Adiciona um novo cliente.      |
| `/remove_cliente` | POST   | Remove um cliente.             |
| `/add_query`      | POST   | Adiciona uma query a um cliente. |
| `/remove_query`   | POST   | Remove uma query de um cliente. |
| `/update`         | POST   | Atualiza o status de uma query. |
| `/get_log`        | POST   | ObtÃ©m o log de uma query.      |
| `/log_event`      | POST   | Registra um evento de log.     |

---

## Estrutura de Logs Locais

Os logs sÃ£o salvos em um arquivo chamado `client_manager.log`. Cada registro inclui a data, o nÃ­vel do log e a mensagem associada.

Exemplo de log:

```
2024-12-03 12:00:00 - INFO - ConfiguraÃ§Ã£o atualizada: cliente=cliente_teste, query=query_teste
2024-12-03 12:01:00 - INFO - Cliente adicionado: cliente_teste
2024-12-03 12:02:00 - INFO - Query adicionada: query_teste ao cliente cliente_teste
2024-12-03 12:03:00 - INFO - Status atualizado para completo e log adicionado para a query query_teste do cliente cliente_teste
```
