fix(): Ajuste na listagem de ato_principal - Aplicando descriptografia nos dados
This commit is contained in:
parent
7148de104b
commit
0102a2ba8c
1 changed files with 3 additions and 23 deletions
|
|
@ -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 com descriptografia de campos sensíveis
|
# Executa a query
|
||||||
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,28 +44,8 @@ class IndexRepository:
|
||||||
AtoPrincipal.updated_at,
|
AtoPrincipal.updated_at,
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
# Lista final com conversão segura
|
# Converte os models SQLAlchemy em schemas Pydantic
|
||||||
data = []
|
data = [AtoPrincipalSchema.model_validate(obj) for obj in result]
|
||||||
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