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:
parent
7bbfbe2d94
commit
04d44c5004
1 changed files with 55 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue