Files
2026-03-27 17:52:41 +01:00

55 lines
2.1 KiB
Python

from database import creer_connexion, enregistrer_audit
from auth import obtenir_ip_client
from models.beneficiaire import BeneficiaireDAO
from validators import valider_champs_obligatoires
class BeneficiaireService:
def __init__(self):
self.beneficiaire_dao = BeneficiaireDAO()
def obtenir_beneficiaires(self, id_utilisateur_courant):
conn = creer_connexion()
try:
return self.beneficiaire_dao.lister_par_utilisateur(conn, id_utilisateur_courant)
finally:
conn.close()
def ajouter_beneficiaire(self, id_utilisateur_courant, donnees):
conn = creer_connexion()
try:
valider_champs_obligatoires(donnees, ['beneficiary_name', 'account_number'])
beneficiaire = self.beneficiaire_dao.ajouter(
conn,
id_utilisateur_courant,
donnees['beneficiary_name'].strip(),
donnees['account_number'].strip().upper(),
donnees.get('bank_name', 'DragonBank').strip(),
donnees.get('iban', '').strip().upper() or None,
donnees.get('bic', '').strip().upper() or None
)
enregistrer_audit(conn.cursor(), id_utilisateur_courant, 'ADD_BENEFICIARY',
{'nom': donnees['beneficiary_name']}, obtenir_ip_client())
conn.commit()
return beneficiaire
except Exception:
conn.rollback()
raise
finally:
conn.close()
def supprimer_beneficiaire(self, id_utilisateur_courant, id_beneficiaire):
conn = creer_connexion()
try:
supprime = self.beneficiaire_dao.supprimer(conn, id_beneficiaire, id_utilisateur_courant)
if not supprime:
raise ValueError('Beneficiaire introuvable')
enregistrer_audit(conn.cursor(), id_utilisateur_courant, 'DELETE_BENEFICIARY',
{'id': id_beneficiaire}, obtenir_ip_client())
conn.commit()
return True
except Exception:
conn.rollback()
raise
finally:
conn.close()