From f505dad8a792a5c1000e6e0485740c94e4b601fc Mon Sep 17 00:00:00 2001 From: Fanilo-Nantenaina Date: Thu, 15 Jan 2026 11:08:52 +0300 Subject: [PATCH] refactor: simplify invoice validation methods and error handling --- api.py | 31 ++++++------------------------- sage_client.py | 18 ++++++------------ 2 files changed, 12 insertions(+), 37 deletions(-) diff --git a/api.py b/api.py index 73cab27..fbd8e0b 100644 --- a/api.py +++ b/api.py @@ -2968,82 +2968,63 @@ async def preview_societe(): @app.post("/factures/{numero_facture}/valider", status_code=200, tags=["Factures"]) async def valider_facture( numero_facture: str, - session: AsyncSession = Depends(get_session), + _: AsyncSession = Depends(get_session), ): - """ - Valide une facture (pose le cadenas) - """ try: resultat = sage_client.valider_facture(numero_facture) - logger.info( f"Facture {numero_facture} validée: {resultat.get('action_effectuee')}" ) - return { "success": True, "message": resultat.get("message", "Facture validée"), "data": resultat, } - except HTTPException: raise except Exception as e: logger.error(f"Erreur validation facture {numero_facture}: {e}") - raise HTTPException(500, str(e)) + raise HTTPException(status_code=500, detail=str(e)) @app.post("/factures/{numero_facture}/devalider", status_code=200, tags=["Factures"]) async def devalider_facture( numero_facture: str, - session: AsyncSession = Depends(get_session), + _: AsyncSession = Depends(get_session), ): - """ - Dévalide une facture (retire le cadenas) - - Impossible si la facture a des règlements. - """ try: resultat = sage_client.devalider_facture(numero_facture) - logger.info( f"Facture {numero_facture} dévalidée: {resultat.get('action_effectuee')}" ) - return { "success": True, "message": resultat.get("message", "Facture dévalidée"), "data": resultat, } - except HTTPException: raise except Exception as e: logger.error(f"Erreur dévalidation facture {numero_facture}: {e}") - raise HTTPException(500, str(e)) + raise HTTPException(status_code=500, detail=str(e)) @app.get("/factures/{numero_facture}/statut-validation", tags=["Factures"]) async def get_statut_validation_facture( numero_facture: str, - session: AsyncSession = Depends(get_session), + _: AsyncSession = Depends(get_session), ): - """ - Retourne le statut de validation d'une facture - """ try: resultat = sage_client.get_statut_validation(numero_facture) - return { "success": True, "data": resultat, } - except HTTPException: raise except Exception as e: logger.error(f"Erreur lecture statut {numero_facture}: {e}") - raise HTTPException(500, str(e)) + raise HTTPException(status_code=500, detail=str(e)) @app.get("/health", tags=["System"]) diff --git a/sage_client.py b/sage_client.py index 7effc22..ace8b7c 100644 --- a/sage_client.py +++ b/sage_client.py @@ -432,22 +432,16 @@ class SageGatewayClient: return self._get("/sage/societe/info").get("data") def valider_facture(self, numero_facture: str) -> dict: - """Valide une facture""" - return self._post(f"/sage/factures/{numero_facture}/valider", {}).get( - "data", {} - ) + response = self._post(f"/sage/factures/{numero_facture}/valider", {}) + return response.get("data", {}) def devalider_facture(self, numero_facture: str) -> dict: - """Dévalide une facture""" - return self._post(f"/sage/factures/{numero_facture}/devalider", {}).get( - "data", {} - ) + response = self._post(f"/sage/factures/{numero_facture}/devalider", {}) + return response.get("data", {}) def get_statut_validation(self, numero_facture: str) -> dict: - """Récupère le statut de validation""" - return self._get(f"/sage/factures/{numero_facture}/statut-validation").get( - "data", {} - ) + response = self._get(f"/sage/factures/{numero_facture}/statut-validation") + return response.get("data", {}) def refresh_cache(self) -> Dict: return self._post("/sage/cache/refresh")