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": {
|
"url": {
|
||||||
"raw": "{{url}}/ato/3",
|
"raw": "{{url}}/ato/58",
|
||||||
"host": [
|
"host": [
|
||||||
"{{url}}"
|
"{{url}}"
|
||||||
],
|
],
|
||||||
"path": [
|
"path": [
|
||||||
"ato",
|
"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
|
# Cria a sessão dentro do repositório
|
||||||
db = SessionLocal()
|
db = SessionLocal()
|
||||||
try:
|
try:
|
||||||
# Executa a query
|
# Executa a query com descriptografia de campos sensíveis
|
||||||
result = db.query(
|
result = db.query(
|
||||||
AtoPrincipal.ato_principal_id,
|
AtoPrincipal.ato_principal_id,
|
||||||
AtoPrincipal.origem_ato_principal_id,
|
AtoPrincipal.origem_ato_principal_id,
|
||||||
|
|
@ -44,8 +44,28 @@ class IndexRepository:
|
||||||
AtoPrincipal.updated_at,
|
AtoPrincipal.updated_at,
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
# Converte os models SQLAlchemy em schemas Pydantic
|
# Lista final com conversão segura
|
||||||
data = [AtoPrincipalSchema.model_validate(obj) for obj in result]
|
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
|
return data
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue