feat: Implement Universign e-signature integration with dedicated utility functions.

This commit is contained in:
Fanilo-Nantenaina 2025-12-29 20:16:23 +03:00
parent 3dfad26c75
commit ffa45347bb
3 changed files with 7 additions and 11 deletions

10
api.py
View file

@ -4,7 +4,7 @@ from fastapi.responses import StreamingResponse
from fastapi.encoders import jsonable_encoder from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel, Field, EmailStr from pydantic import BaseModel, Field, EmailStr
from typing import List, Optional from typing import List, Optional
from datetime import datetime from datetime import datetime
import uvicorn import uvicorn
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
import uuid import uuid
@ -73,7 +73,7 @@ from schemas import (
FamilleCreateRequest, FamilleCreateRequest,
FamilleListResponse, FamilleListResponse,
ContactCreate, ContactCreate,
ContactUpdate ContactUpdate,
) )
from utils.generic_functions import universign_envoyer, universign_statut from utils.generic_functions import universign_envoyer, universign_statut
from utils.normalization import normaliser_type_tiers from utils.normalization import normaliser_type_tiers
@ -2842,14 +2842,14 @@ async def creer_contact(numero: str, contact: ContactCreate):
contact.numero = numero contact.numero = numero
resultat = sage_client.creer_contact(contact.dict()) resultat = sage_client.creer_contact(contact.dict())
if isinstance(resultat, dict) and "data" in resultat: if isinstance(resultat, dict) and "data" in resultat:
contact_data = resultat["data"] contact_data = resultat["data"]
else: else:
contact_data = resultat contact_data = resultat
return Contact(**contact_data) return Contact(**contact_data)
except HTTPException: except HTTPException:
raise raise
except Exception as e: except Exception as e:

0
utils/__init__.py Normal file
View file

View file

@ -3,19 +3,14 @@ from typing import Dict
from config import settings from config import settings
import logging import logging
from typing import Dict
from datetime import datetime from datetime import datetime
import uuid import uuid
import logging
import requests import requests
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from config import settings
from data.data import templates_signature_email from data.data import templates_signature_email
from database import EmailLog, StatutEmail as StatutEmailEnum from database import EmailLog, StatutEmail as StatutEmailEnum
from email_queue import email_queue
from data.data import templates_signature_email
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -27,7 +22,8 @@ async def universign_envoyer(
doc_data: Dict, doc_data: Dict,
session: AsyncSession, session: AsyncSession,
) -> Dict: ) -> Dict:
import requests
from email_queue import email_queue
try: try:
api_key = settings.universign_api_key api_key = settings.universign_api_key