fix(): Ajuste na listagem de ato_principal - Aplicando descriptografia nos dados
This commit is contained in:
parent
682cb61ab9
commit
fb2ea45c46
2 changed files with 78 additions and 5 deletions
|
|
@ -1308,13 +1308,66 @@
|
|||
}
|
||||
},
|
||||
"url": {
|
||||
"raw": "{{url}}/ato/3",
|
||||
"raw": "{{url}}/ato/58",
|
||||
"host": [
|
||||
"{{url}}"
|
||||
],
|
||||
"path": [
|
||||
"ato",
|
||||
"3"
|
||||
"58"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": []
|
||||
},
|
||||
{
|
||||
"name": "Localizar Código Ato",
|
||||
"event": [
|
||||
{
|
||||
"listen": "test",
|
||||
"script": {
|
||||
"exec": [
|
||||
""
|
||||
],
|
||||
"type": "text/javascript",
|
||||
"packages": {},
|
||||
"requests": {}
|
||||
}
|
||||
}
|
||||
],
|
||||
"protocolProfileBehavior": {
|
||||
"disableBodyPruning": true
|
||||
},
|
||||
"request": {
|
||||
"auth": {
|
||||
"type": "bearer",
|
||||
"bearer": [
|
||||
{
|
||||
"key": "token",
|
||||
"value": "{{BearerToken}}",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"method": "GET",
|
||||
"header": [],
|
||||
"body": {
|
||||
"mode": "raw",
|
||||
"raw": "",
|
||||
"options": {
|
||||
"raw": {
|
||||
"language": "json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": {
|
||||
"raw": "{{url}}/atos/yellowu88",
|
||||
"host": [
|
||||
"{{url}}"
|
||||
],
|
||||
"path": [
|
||||
"atos",
|
||||
"yellowu88"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class IndexRepository:
|
|||
# Cria a sessão dentro do repositório
|
||||
db = SessionLocal()
|
||||
try:
|
||||
# Executa a query
|
||||
# Executa a query com descriptografia de campos sensíveis
|
||||
result = db.query(
|
||||
AtoPrincipal.ato_principal_id,
|
||||
AtoPrincipal.origem_ato_principal_id,
|
||||
|
|
@ -44,8 +44,28 @@ class IndexRepository:
|
|||
AtoPrincipal.updated_at,
|
||||
).all()
|
||||
|
||||
# Converte os models SQLAlchemy em schemas Pydantic
|
||||
data = [AtoPrincipalSchema.model_validate(obj) for obj in result]
|
||||
# Lista final com conversão segura
|
||||
data = []
|
||||
for obj in result:
|
||||
# Transforma a Row em dicionário mutável
|
||||
row = dict(obj._mapping)
|
||||
|
||||
# Decodifica os campos criptografados (se não forem None)
|
||||
for field in [
|
||||
"nome_civil_ato",
|
||||
"nome_serventuario_praticou_ato",
|
||||
"inteiro_teor",
|
||||
]:
|
||||
value = row.get(field)
|
||||
if isinstance(value, (bytes, bytearray)):
|
||||
try:
|
||||
row[field] = value.decode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
# Evita quebrar se o conteúdo não for UTF-8 válido
|
||||
row[field] = None
|
||||
|
||||
# Valida via schema Pydantic
|
||||
data.append(AtoPrincipalSchema.model_validate(row))
|
||||
|
||||
return data
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue