feat(raw-data): adicionar visualização de dados brutos do ATUACAPES

- Novo endpoint GET /api/v1/consultor/{id}/raw para buscar documento completo do ES
- Novo componente RawDataModal com formatação inteligente de campos
- Botão de acesso rápido no ConsultorCard (ícone ⋮)
- Melhorias de estilo no Header e ConsultorCard
This commit is contained in:
Frederico Castro
2025-12-17 23:28:11 -03:00
parent 99ce6e30d8
commit c388509acb
11 changed files with 1186 additions and 21 deletions

View File

@@ -48,6 +48,10 @@ def get_oracle_client() -> OracleClient:
return oracle_client
def get_es_client() -> ElasticsearchClient:
return es_client
def get_ranking_oracle_repo() -> RankingOracleRepository:
return ranking_oracle_repo

View File

@@ -21,7 +21,8 @@ from ..schemas.ranking_schema import (
ProcessarRankingResponseSchema,
ConsultaNomeSchema,
)
from .dependencies import get_repository, get_ranking_store, get_processar_job
from .dependencies import get_repository, get_ranking_store, get_processar_job, get_es_client
from ...infrastructure.elasticsearch.client import ElasticsearchClient
from ...application.jobs.job_status import job_status
router = APIRouter(prefix="/api/v1", tags=["ranking"])
@@ -305,3 +306,17 @@ async def processar_ranking(
mensagem="Processamento do ranking iniciado em background",
job_id="ranking_job"
)
@router.get("/consultor/{id_pessoa}/raw")
async def obter_consultor_raw(
id_pessoa: int,
es_client: ElasticsearchClient = Depends(get_es_client),
):
try:
documento = await es_client.buscar_documento_completo(id_pessoa)
if not documento:
raise HTTPException(status_code=404, detail=f"Consultor {id_pessoa} não encontrado no Elasticsearch")
return documento
except RuntimeError as e:
raise HTTPException(status_code=500, detail=str(e))