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
|
||||
db = SessionLocal()
|
||||
try:
|
||||
# Executa a query com descriptografia de campos sensíveis
|
||||
# Executa a query
|
||||
result = db.query(
|
||||
AtoPrincipal.ato_principal_id,
|
||||
AtoPrincipal.origem_ato_principal_id,
|
||||
|
|
@ -44,28 +44,8 @@ class IndexRepository:
|
|||
AtoPrincipal.updated_at,
|
||||
).all()
|
||||
|
||||
# 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))
|
||||
# Converte os models SQLAlchemy em schemas Pydantic
|
||||
data = [AtoPrincipalSchema.model_validate(obj) for obj in result]
|
||||
|
||||
return data
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue