from typing import Dict, List, Optional, Any from utils.functions.items_to_dict import _row_to_contact_dict import logging logger = logging.getLogger(__name__) def obtenir_contact(self, numero: str, contact_numero: int) -> Optional[Dict]: """ Récupère un contact spécifique par son CT_No """ try: with self._get_sql_connection() as conn: cursor = conn.cursor() query = """ SELECT CT_Num, CT_No, N_Contact, CT_Civilite, CT_Nom, CT_Prenom, CT_Fonction, N_Service, CT_Telephone, CT_TelPortable, CT_Telecopie, CT_EMail, CT_Facebook, CT_LinkedIn, CT_Skype FROM F_CONTACTT WHERE CT_Num = ? AND CT_No = ? """ cursor.execute(query, [numero, contact_numero]) row = cursor.fetchone() if not row: return None return _row_to_contact_dict(row) except Exception as e: logger.error(f"Erreur obtention contact: {e}") raise RuntimeError(f"Erreur lecture contact: {str(e)}")