Code source de modules.crud
from sqlalchemy.orm import Session
from maths import mon_module # On importe notre "Chef cuisinier"
from models.models import OperationCreate, OperationDB
[docs]
def create_operation(db: Session, op: OperationCreate):
"""Orchestre le calcul et la sauvegarde en base de données."""
# 1. Le Calcul (Appel au module métier)
if op.type_op == "add":
res = mon_module.add(op.valeur1, op.valeur2)
elif op.type_op == "sub":
res = mon_module.sub(op.valeur1, op.valeur2)
elif op.type_op == "square":
# NOUVEAU : On utilise la fonction 'square' de ton VRAI mon_module.py
# Le carré ne prend qu'un seul paramÚtre, on ignore donc valeur2
res = mon_module.square(op.valeur1)
else:
# On lÚve une erreur Python standard si l'opération est inconnue
raise ValueError(f"Opération '{op.type_op}' non supportée.")
# 2. La Sauvegarde en BDD
nouvelle_op_db = OperationDB(**op.model_dump(), resultat=res)
db.add(nouvelle_op_db)
db.commit()
db.refresh(nouvelle_op_db)
return nouvelle_op_db
[docs]
def get_all_operations(db: Session):
"""
RécupÚre l'intégralité de l'historique des opérations
sauvegardées dans la base de données.
"""
# SQLAlchemy traduit cette ligne en un classique "SELECT * FROM operations;"
# .all() renvoie la liste complÚte des résultats
return db.query(OperationDB).all()