wifi-etl/debug_wifeed.py
Rafael Lopes 331a021d9a
Some checks failed
Deploy WiFi-ETL Prod / deploy (push) Failing after 0s
FEAT: Implementado ETL completo para Ruijie e Wifeed
- Adicionado suporte para extração de dados do Ruijie e WiFeed, incluindo autenticação e tratamento de erros.
- Adicionado suporte para watermarking em ambas as fontes para extração incremental.
- Criado script de transformação para mesclagem de MAC addresses.
- Implementado Backfill para WiFeed, permitindo extração histórica com controle de taxa.
- Adicionado script de depuração para testes de transformação do WiFeed.
- Desenvolvido scripts de implantação e configurações do Docker para setup de produção.
- Criado script de inicialização do schema do PostgreSQL em infra/init.sql.
- Adicionado teste automatizado para lógica de transformação e carregamento em test_transform_load.py.
- Atualizado documentation para implantação e setup de produção.
2026-04-22 16:55:44 -03:00

54 lines
1.7 KiB
Python

#!/usr/bin/env python3
"""Debug WiFeed transform"""
import requests
import json
from app.core.config import WIFEED_CLIENT_ID, WIFEED_CLIENT_SECRET, WIFEED_BASE_URL
from app.extractor.wifeed import get_access_token
from app.transform.merge_mac import transform_wifeed
print("Autenticando WiFeed...")
try:
token = get_access_token(WIFEED_CLIENT_ID, WIFEED_CLIENT_SECRET)
print(f"Token obtido: {token[:50]}...")
except Exception as e:
print(f"Erro ao autenticar: {e}")
exit(1)
print("\nExtraindo dados de hoje...")
url = f"{WIFEED_BASE_URL.rstrip('/')}/core/openapi/v1/report/record"
params = {"page": 0, "date": "2026-04-22"}
headers = {"Authorization": f"Bearer {token}"}
try:
resp = requests.get(url, headers=headers, params=params, timeout=30, verify=False)
resp.raise_for_status()
records = resp.json() if isinstance(resp.json(), list) else resp.json().get("records", [])
print(f"Extractos {len(records)} registros")
except Exception as e:
print(f"Erro ao extrair: {e}")
exit(1)
if records:
print("\n=" * 80)
print("PRIMEIRO REGISTRO BRUTO:")
print("=" * 80)
print(json.dumps(records[0], indent=2))
print("\n" + "=" * 80)
print("APLICANDO TRANSFORM:")
print("=" * 80)
transformed = transform_wifeed(records[0])
print(json.dumps(transformed, indent=2, default=str))
if transformed.get('mac_address'):
print(f"\n✓ MAC extraído: {transformed['mac_address']}")
else:
print(f"\n✗ MAC VAZIO - problema na extração!")
if transformed.get('name'):
print(f"✓ Name extraído: {transformed['name']}")
else:
print(f"✗ Name VAZIO - problema na extração!")
else:
print("Nenhum registro extraído!")