42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
|
|
"""Routes pour gérer la liste des emails qui reçoivent les alertes de stock bas."""
|
||
|
|
|
||
|
|
from fastapi import APIRouter, Depends, Form
|
||
|
|
from fastapi.requests import Request
|
||
|
|
from fastapi.responses import RedirectResponse
|
||
|
|
from sqlmodel import Session, select
|
||
|
|
|
||
|
|
from app.database import get_session
|
||
|
|
from app.models import DestinataireAlerte
|
||
|
|
from app.templates_engine import templates
|
||
|
|
|
||
|
|
router = APIRouter()
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/destinataires")
|
||
|
|
def lister_destinataires(request: Request, session: Session = Depends(get_session)):
|
||
|
|
"""Affiche la liste des emails configurés pour recevoir les alertes."""
|
||
|
|
destinataires = session.exec(select(DestinataireAlerte)).all()
|
||
|
|
return templates.TemplateResponse(
|
||
|
|
request, "destinataires.html", {"destinataires": destinataires}
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
@router.post("/destinataires")
|
||
|
|
def ajouter_destinataire(email: str = Form(...), session: Session = Depends(get_session)):
|
||
|
|
"""Ajoute un email à la liste des destinataires des alertes."""
|
||
|
|
session.add(DestinataireAlerte(email=email))
|
||
|
|
session.commit()
|
||
|
|
return RedirectResponse(url="/destinataires", status_code=303)
|
||
|
|
|
||
|
|
|
||
|
|
@router.post("/destinataires/{destinataire_id}/supprimer")
|
||
|
|
def supprimer_destinataire(
|
||
|
|
destinataire_id: int, session: Session = Depends(get_session)
|
||
|
|
):
|
||
|
|
"""Retire un email de la liste des destinataires."""
|
||
|
|
destinataire = session.get(DestinataireAlerte, destinataire_id)
|
||
|
|
if destinataire:
|
||
|
|
session.delete(destinataire)
|
||
|
|
session.commit()
|
||
|
|
return RedirectResponse(url="/destinataires", status_code=303)
|