feat(): Criação de endpoint que cadastra multiplos documentos junto ao banco de dados. Criado função global que grava os arquivos em disco

This commit is contained in:
Kenio 2025-11-13 19:02:35 -03:00
parent 7bbfbe2d94
commit 04d44c5004

View file

@ -99,3 +99,58 @@ class SaveMultipleRepository:
db.add(new_documento)
return new_documento
# -------------------------------------------------------
# Método principal — grava múltiplos documentos
# -------------------------------------------------------
def execute(self, documentos: List[AtoDocumentoSaveMultipleSchema]):
db = SessionLocal()
results = []
if not AES_KEY:
db.close()
raise Exception("A chave AES (aeskey) não está configurada.")
for doc_schema in documentos:
codigo_selo_log = getattr(doc_schema, "codigo_selo", "SELO_INDISPONÍVEL")
try:
new_doc = self._save_documento(db, doc_schema)
db.commit()
results.append(
{
"success": True,
"message": "Documento salvo com sucesso.",
"data": {
"codigo_selo": codigo_selo_log,
"ato_principal_id": new_doc.ato_principal_id,
},
}
)
except HTTPException as he:
db.rollback()
results.append(
{
"success": False,
"error": he.detail,
"data": {"codigo_selo": codigo_selo_log},
}
)
except Exception as e:
db.rollback()
print(f"ERRO AO SALVAR DOCUMENTO (SELO {codigo_selo_log}): {e}")
traceback.print_exc()
results.append(
{
"success": False,
"error": "Erro interno ao salvar o documento.",
"data": {"codigo_selo": codigo_selo_log},
}
)
db.close()
return results