style: Improve code readability and formatting in main.py by adding empty lines and trailing commas.

This commit is contained in:
Fanilo-Nantenaina 2025-12-08 17:59:18 +03:00
parent 51f49298c2
commit bf986bef5a
2 changed files with 1666 additions and 1137 deletions

52
main.py
View file

@ -89,11 +89,14 @@ class ClientCreateRequest(BaseModel):
siret: Optional[str] = None siret: Optional[str] = None
tva_intra: Optional[str] = None tva_intra: Optional[str] = None
class ClientUpdateGatewayRequest(BaseModel): class ClientUpdateGatewayRequest(BaseModel):
"""Modèle pour modification client côté gateway""" """Modèle pour modification client côté gateway"""
code: str code: str
client_data: Dict client_data: Dict
class FournisseurCreateRequest(BaseModel): class FournisseurCreateRequest(BaseModel):
intitule: str = Field(..., description="Raison sociale du fournisseur") intitule: str = Field(..., description="Raison sociale du fournisseur")
compte_collectif: str = Field("401000", description="Compte général rattaché") compte_collectif: str = Field("401000", description="Compte général rattaché")
@ -124,17 +127,21 @@ class FournisseurCreateRequest(BaseModel):
class FournisseurUpdateGatewayRequest(BaseModel): class FournisseurUpdateGatewayRequest(BaseModel):
"""Modèle pour modification fournisseur côté gateway""" """Modèle pour modification fournisseur côté gateway"""
code: str code: str
fournisseur_data: Dict fournisseur_data: Dict
class DevisUpdateGatewayRequest(BaseModel): class DevisUpdateGatewayRequest(BaseModel):
"""Modèle pour modification devis côté gateway""" """Modèle pour modification devis côté gateway"""
numero: str numero: str
devis_data: Dict devis_data: Dict
class CommandeCreateRequest(BaseModel): class CommandeCreateRequest(BaseModel):
"""Création d'une commande""" """Création d'une commande"""
client_id: str client_id: str
date_commande: Optional[date] = None date_commande: Optional[date] = None
reference: Optional[str] = None reference: Optional[str] = None
@ -143,11 +150,14 @@ class CommandeCreateRequest(BaseModel):
class CommandeUpdateGatewayRequest(BaseModel): class CommandeUpdateGatewayRequest(BaseModel):
"""Modèle pour modification commande côté gateway""" """Modèle pour modification commande côté gateway"""
numero: str numero: str
commande_data: Dict commande_data: Dict
class LivraisonCreateGatewayRequest(BaseModel): class LivraisonCreateGatewayRequest(BaseModel):
"""Création d'une livraison côté gateway""" """Création d'une livraison côté gateway"""
client_id: str client_id: str
date_livraison: Optional[date] = None date_livraison: Optional[date] = None
lignes: List[Dict] lignes: List[Dict]
@ -156,11 +166,14 @@ class LivraisonCreateGatewayRequest(BaseModel):
class LivraisonUpdateGatewayRequest(BaseModel): class LivraisonUpdateGatewayRequest(BaseModel):
"""Modèle pour modification livraison côté gateway""" """Modèle pour modification livraison côté gateway"""
numero: str numero: str
livraison_data: Dict livraison_data: Dict
class AvoirCreateGatewayRequest(BaseModel): class AvoirCreateGatewayRequest(BaseModel):
"""Création d'un avoir côté gateway""" """Création d'un avoir côté gateway"""
client_id: str client_id: str
date_avoir: Optional[date] = None date_avoir: Optional[date] = None
lignes: List[Dict] lignes: List[Dict]
@ -169,11 +182,14 @@ class AvoirCreateGatewayRequest(BaseModel):
class AvoirUpdateGatewayRequest(BaseModel): class AvoirUpdateGatewayRequest(BaseModel):
"""Modèle pour modification avoir côté gateway""" """Modèle pour modification avoir côté gateway"""
numero: str numero: str
avoir_data: Dict avoir_data: Dict
class FactureCreateGatewayRequest(BaseModel): class FactureCreateGatewayRequest(BaseModel):
"""Création d'une facture côté gateway""" """Création d'une facture côté gateway"""
client_id: str client_id: str
date_facture: Optional[date] = None date_facture: Optional[date] = None
lignes: List[Dict] lignes: List[Dict]
@ -182,14 +198,18 @@ class FactureCreateGatewayRequest(BaseModel):
class FactureUpdateGatewayRequest(BaseModel): class FactureUpdateGatewayRequest(BaseModel):
"""Modèle pour modification facture côté gateway""" """Modèle pour modification facture côté gateway"""
numero: str numero: str
facture_data: Dict facture_data: Dict
class PDFGenerationRequest(BaseModel): class PDFGenerationRequest(BaseModel):
"""Modèle pour génération PDF""" """Modèle pour génération PDF"""
doc_id: str = Field(..., description="Numéro du document") doc_id: str = Field(..., description="Numéro du document")
type_doc: int = Field(..., ge=0, le=60, description="Type de document Sage") type_doc: int = Field(..., ge=0, le=60, description="Type de document Sage")
# ===================================================== # =====================================================
# SÉCURITÉ # SÉCURITÉ
# ===================================================== # =====================================================
@ -283,6 +303,7 @@ def clients_list(req: FiltreRequest):
logger.error(f"Erreur liste clients: {e}") logger.error(f"Erreur liste clients: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/clients/update", dependencies=[Depends(verify_token)]) @app.post("/sage/clients/update", dependencies=[Depends(verify_token)])
def modifier_client_endpoint(req: ClientUpdateGatewayRequest): def modifier_client_endpoint(req: ClientUpdateGatewayRequest):
""" """
@ -299,6 +320,7 @@ def modifier_client_endpoint(req: ClientUpdateGatewayRequest):
logger.error(f"Erreur technique modification client: {e}") logger.error(f"Erreur technique modification client: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/clients/get", dependencies=[Depends(verify_token)]) @app.post("/sage/clients/get", dependencies=[Depends(verify_token)])
def client_get(req: CodeRequest): def client_get(req: CodeRequest):
"""Lecture d'un client par code""" """Lecture d'un client par code"""
@ -331,6 +353,7 @@ def create_client_endpoint(req: ClientCreateRequest):
# Erreur technique (ex: COM) -> 500 Internal Server Error # Erreur technique (ex: COM) -> 500 Internal Server Error
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
# ===================================================== # =====================================================
# ENDPOINTS - ARTICLES # ENDPOINTS - ARTICLES
# ===================================================== # =====================================================
@ -406,7 +429,7 @@ def lire_devis(req: CodeRequest):
def devis_list( def devis_list(
limit: int = Query(100, description="Nombre max de devis"), limit: int = Query(100, description="Nombre max de devis"),
statut: Optional[int] = Query(None, description="Filtrer par statut"), statut: Optional[int] = Query(None, description="Filtrer par statut"),
filtre: str = Query("", description="Filtre texte (numero, client)") filtre: str = Query("", description="Filtre texte (numero, client)"),
): ):
""" """
📋 Liste rapide des devis depuis le CACHE (sans lignes) 📋 Liste rapide des devis depuis le CACHE (sans lignes)
@ -433,6 +456,7 @@ def devis_list(
logger.error(f"❌ Erreur liste devis: {e}", exc_info=True) logger.error(f"❌ Erreur liste devis: {e}", exc_info=True)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/devis/statut", dependencies=[Depends(verify_token)]) @app.post("/sage/devis/statut", dependencies=[Depends(verify_token)])
def changer_statut_devis_endpoint(numero: str, nouveau_statut: int): def changer_statut_devis_endpoint(numero: str, nouveau_statut: int):
"""Change le statut d'un devis""" """Change le statut d'un devis"""
@ -604,7 +628,7 @@ def contact_read(req: CodeRequest):
def commandes_list( def commandes_list(
limit: int = Query(100, description="Nombre max de commandes"), limit: int = Query(100, description="Nombre max de commandes"),
statut: Optional[int] = Query(None, description="Filtrer par statut"), statut: Optional[int] = Query(None, description="Filtrer par statut"),
filtre: str = Query("", description="Filtre texte") filtre: str = Query("", description="Filtre texte"),
): ):
""" """
📋 Liste rapide des commandes depuis le CACHE (sans lignes) 📋 Liste rapide des commandes depuis le CACHE (sans lignes)
@ -627,11 +651,12 @@ def commandes_list(
logger.error(f"❌ Erreur liste commandes: {e}", exc_info=True) logger.error(f"❌ Erreur liste commandes: {e}", exc_info=True)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/factures/list", dependencies=[Depends(verify_token)]) @app.post("/sage/factures/list", dependencies=[Depends(verify_token)])
def factures_list( def factures_list(
limit: int = Query(100, description="Nombre max de factures"), limit: int = Query(100, description="Nombre max de factures"),
statut: Optional[int] = Query(None, description="Filtrer par statut"), statut: Optional[int] = Query(None, description="Filtrer par statut"),
filtre: str = Query("", description="Filtre texte") filtre: str = Query("", description="Filtre texte"),
): ):
""" """
📋 Liste rapide des factures depuis le CACHE (sans lignes) 📋 Liste rapide des factures depuis le CACHE (sans lignes)
@ -655,6 +680,7 @@ def factures_list(
logger.error(f"❌ Erreur liste factures: {e}", exc_info=True) logger.error(f"❌ Erreur liste factures: {e}", exc_info=True)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/client/remise-max", dependencies=[Depends(verify_token)]) @app.post("/sage/client/remise-max", dependencies=[Depends(verify_token)])
def lire_remise_max_client(code: str): def lire_remise_max_client(code: str):
"""Récupère la remise max autorisée pour un client""" """Récupère la remise max autorisée pour un client"""
@ -2386,6 +2412,7 @@ def fournisseurs_list(req: FiltreRequest):
logger.error(f"❌ Erreur liste fournisseurs: {e}", exc_info=True) logger.error(f"❌ Erreur liste fournisseurs: {e}", exc_info=True)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/fournisseurs/create", dependencies=[Depends(verify_token)]) @app.post("/sage/fournisseurs/create", dependencies=[Depends(verify_token)])
def create_fournisseur_endpoint(req: FournisseurCreateRequest): def create_fournisseur_endpoint(req: FournisseurCreateRequest):
""" """
@ -2399,10 +2426,7 @@ def create_fournisseur_endpoint(req: FournisseurCreateRequest):
logger.info(f"✅ Fournisseur créé: {resultat.get('numero')}") logger.info(f"✅ Fournisseur créé: {resultat.get('numero')}")
return { return {"success": True, "data": resultat}
"success": True,
"data": resultat
}
except ValueError as e: except ValueError as e:
# Erreur métier (ex: doublon) # Erreur métier (ex: doublon)
@ -2414,6 +2438,7 @@ def create_fournisseur_endpoint(req: FournisseurCreateRequest):
logger.error(f"❌ Erreur technique création fournisseur: {e}") logger.error(f"❌ Erreur technique création fournisseur: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/fournisseurs/update", dependencies=[Depends(verify_token)]) @app.post("/sage/fournisseurs/update", dependencies=[Depends(verify_token)])
def modifier_fournisseur_endpoint(req: FournisseurUpdateGatewayRequest): def modifier_fournisseur_endpoint(req: FournisseurUpdateGatewayRequest):
""" """
@ -2430,6 +2455,7 @@ def modifier_fournisseur_endpoint(req: FournisseurUpdateGatewayRequest):
logger.error(f"Erreur technique modification fournisseur: {e}") logger.error(f"Erreur technique modification fournisseur: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/fournisseurs/get", dependencies=[Depends(verify_token)]) @app.post("/sage/fournisseurs/get", dependencies=[Depends(verify_token)])
def fournisseur_get(req: CodeRequest): def fournisseur_get(req: CodeRequest):
""" """
@ -2504,6 +2530,7 @@ def livraison_get(req: CodeRequest):
logger.error(f"Erreur lecture livraison: {e}") logger.error(f"Erreur lecture livraison: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/devis/update", dependencies=[Depends(verify_token)]) @app.post("/sage/devis/update", dependencies=[Depends(verify_token)])
def modifier_devis_endpoint(req: DevisUpdateGatewayRequest): def modifier_devis_endpoint(req: DevisUpdateGatewayRequest):
""" """
@ -2530,6 +2557,7 @@ def modifier_devis_endpoint(req: DevisUpdateGatewayRequest):
# ENDPOINTS - CRÉATION ET MODIFICATION COMMANDES # ENDPOINTS - CRÉATION ET MODIFICATION COMMANDES
# ===================================================== # =====================================================
@app.post("/sage/commandes/create", dependencies=[Depends(verify_token)]) @app.post("/sage/commandes/create", dependencies=[Depends(verify_token)])
def creer_commande_endpoint(req: CommandeCreateRequest): def creer_commande_endpoint(req: CommandeCreateRequest):
""" """
@ -2624,6 +2652,7 @@ def modifier_livraison_endpoint(req: LivraisonUpdateGatewayRequest):
logger.error(f"Erreur technique modification livraison: {e}") logger.error(f"Erreur technique modification livraison: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/avoirs/create", dependencies=[Depends(verify_token)]) @app.post("/sage/avoirs/create", dependencies=[Depends(verify_token)])
def creer_avoir_endpoint(req: AvoirCreateGatewayRequest): def creer_avoir_endpoint(req: AvoirCreateGatewayRequest):
""" """
@ -2670,6 +2699,7 @@ def modifier_avoir_endpoint(req: AvoirUpdateGatewayRequest):
logger.error(f"Erreur technique modification avoir: {e}") logger.error(f"Erreur technique modification avoir: {e}")
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/factures/create", dependencies=[Depends(verify_token)]) @app.post("/sage/factures/create", dependencies=[Depends(verify_token)])
def creer_facture_endpoint(req: FactureCreateGatewayRequest): def creer_facture_endpoint(req: FactureCreateGatewayRequest):
""" """
@ -2764,7 +2794,8 @@ def generer_pdf_document(req: PDFGenerationRequest):
# Encoder en base64 pour le transport JSON # Encoder en base64 pour le transport JSON
import base64 import base64
pdf_base64 = base64.b64encode(pdf_bytes).decode('utf-8')
pdf_base64 = base64.b64encode(pdf_bytes).decode("utf-8")
logger.info(f"✅ PDF généré: {len(pdf_bytes)} octets") logger.info(f"✅ PDF généré: {len(pdf_bytes)} octets")
@ -2774,8 +2805,8 @@ def generer_pdf_document(req: PDFGenerationRequest):
"pdf_base64": pdf_base64, "pdf_base64": pdf_base64,
"taille_octets": len(pdf_bytes), "taille_octets": len(pdf_bytes),
"type_doc": req.type_doc, "type_doc": req.type_doc,
"numero": req.doc_id "numero": req.doc_id,
} },
} }
except HTTPException: except HTTPException:
@ -2784,6 +2815,7 @@ def generer_pdf_document(req: PDFGenerationRequest):
logger.error(f"❌ Erreur génération PDF: {e}", exc_info=True) logger.error(f"❌ Erreur génération PDF: {e}", exc_info=True)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
# ===================================================== # =====================================================
# LANCEMENT # LANCEMENT
# ===================================================== # =====================================================

File diff suppressed because it is too large Load diff