diff --git a/routes/universign.py b/routes/universign.py index 881bd46..949c41e 100644 --- a/routes/universign.py +++ b/routes/universign.py @@ -1531,6 +1531,7 @@ async def telecharger_documents_manquants( logger.info(f"đŸ“„ {len(transactions)} document(s) Ă  tĂ©lĂ©charger") document_service = UniversignDocumentService( + api_url=settings.universign_api_url, api_key=settings.universign_api_key, timeout=60 ) @@ -1596,6 +1597,7 @@ async def nettoyer_anciens_documents( """ try: document_service = UniversignDocumentService( + api_url=settings.universign_api_url, api_key=settings.universign_api_key ) diff --git a/services/universign_sync.py b/services/universign_sync.py index 3c34b46..2a4a360 100644 --- a/services/universign_sync.py +++ b/services/universign_sync.py @@ -322,7 +322,6 @@ class UniversignSyncService: except Exception as e: logger.error(f"Erreur crĂ©ation signer {email}: {e}") - async def sync_transaction( self, session, @@ -330,7 +329,7 @@ class UniversignSyncService: force: bool = False, ): import json - + # Si statut final et pas de force, skip if is_final_status(transaction.local_status.value) and not force: logger.debug( @@ -395,7 +394,9 @@ class UniversignSyncService: except ValueError: logger.warning(f"⚠ Statut Universign inconnu: {universign_status_raw}") if new_local_status == "SIGNE": - transaction.universign_status = UniversignTransactionStatus.COMPLETED + transaction.universign_status = ( + UniversignTransactionStatus.COMPLETED + ) elif new_local_status == "REFUSE": transaction.universign_status = UniversignTransactionStatus.REFUSED elif new_local_status == "EXPIRE": @@ -427,7 +428,7 @@ class UniversignSyncService: # === SECTION CORRIGÉE: Gestion des documents === # Ne plus chercher document_url dans la rĂ©ponse (elle n'existe pas!) # Le tĂ©lĂ©chargement se fait via le service document qui utilise le bon endpoint - + documents = universign_data.get("documents", []) if documents: first_doc = documents[0] @@ -435,30 +436,27 @@ class UniversignSyncService: f"📄 Document Universign trouvĂ©: id={first_doc.get('id')}, " f"status={first_doc.get('status')}" ) - + # TĂ©lĂ©chargement automatique du document signĂ© if new_local_status == "SIGNE" and not transaction.signed_document_path: logger.info("đŸ“„ DĂ©clenchement tĂ©lĂ©chargement document signĂ©...") - + try: ( download_success, download_error, ) = await self.document_service.download_and_store_signed_document( - session=session, - transaction=transaction, - force=False + session=session, transaction=transaction, force=False ) - + if download_success: logger.info("✅ Document signĂ© tĂ©lĂ©chargĂ© et stockĂ©") else: logger.warning(f"⚠ Échec tĂ©lĂ©chargement: {download_error}") - + except Exception as e: logger.error( - f"❌ Erreur tĂ©lĂ©chargement document: {e}", - exc_info=True + f"❌ Erreur tĂ©lĂ©chargement document: {e}", exc_info=True ) # === FIN SECTION CORRIGÉE === @@ -496,7 +494,9 @@ class UniversignSyncService: # ExĂ©cuter les actions post-changement if status_changed: logger.info(f"🎬 ExĂ©cution actions pour statut: {new_local_status}") - await self._execute_status_actions(session, transaction, new_local_status) + await self._execute_status_actions( + session, transaction, new_local_status + ) logger.info( f"✅ Sync terminĂ©e: {transaction.transaction_id} | " @@ -518,7 +518,7 @@ class UniversignSyncService: await session.commit() return False, error_msg - + # CORRECTION 3 : AmĂ©lioration du logging dans sync_transaction async def _sync_transaction_documents_corrected( self, session, transaction, universign_data: dict, new_local_status: str