Valider un événement¶
Objectif : refuser un événement mal formé avant de l'écrire en base.
Ce que vous allez apprendre : make_event valide à la construction et
validate_event re-vérifie un événement existant. Un nom invalide lève
StatsEventError — on refuse avant toute écriture.
Troisième palier du niveau intermédiaire de la progression stats.
Module opt-in
Ce starter suppose forge-mvc-stats installé (palier « Installation »).
Ce que ce starter montre¶
make_event(name, ...)qui valide à la construction ;validate_event(event)qui re-vérifie ;- la capture de
StatsEventError.
Classes Forge utilisées¶
| Classe / fonction | Rôle dans ce starter | Référence |
|---|---|---|
forge_mvc_stats.make_event |
Construire (et valider) un événement. | Stats |
forge_mvc_stats.validate_event |
Re-vérifier un événement existant. | Stats |
forge_mvc_stats.StatsEventError |
Erreur si l'événement est invalide. | Stats |
Tester¶
Ouvrez https://localhost:8000/stats-validate?name=page_view (valide) puis
?name=page.view (refusé).
Le contrôleur¶
# mvc/controllers/stats_validate_controller.py
from forge_mvc_stats import StatsEventError, make_event, validate_event
def _validate_view(name: str) -> dict:
try:
event = make_event(name, "Démo", "general", {})
validate_event(event)
return {"input": name, "valid": True, "name": event.name, "error": None}
except StatsEventError as exc:
return {"input": name, "valid": False, "name": None, "error": str(exc)}
Comprendre ce code¶
- La validation se fait à la construction : un
make_eventinvalide lève immédiatement, avant tout SQL. validate_eventpermet de re-vérifier un événement reçu d'ailleurs (désérialisé, par exemple).- Refuser tôt = pas de données invalides en base.
À retenir¶
- Un événement est validé avant d'être écrit.
make_eventlève à la construction ;validate_eventre-vérifie.StatsEventErrorporte la cause du refus.
Après ce starter¶
Vous savez écrire des événements valides. La suite (avancé) : les consulter.