feat: CRUD categories P3 (rendu serveur, garde + CSRF + validation) #15
No reviewers
Labels
No labels
auto-merge
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: AcadeNice/corentin_wakdo#15
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/p3-categories-crud"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
CRUD Categories (P3) : premier CRUD rendu serveur, etablit le pattern.
category.manage (RG-T03), CSRF sur mutations (RG-T01), validation serveur (RG-T18 : libelle/slug
requis + format + bornes + unicite ; display_order 0..65535), allowlist de colonnes (RG-T16).
Qualite : 144 tests (unit + integration DB auto-skippee, dont CRUD reel du repository), PHPStan L6 vert,
E2E (liste -> creation CSRF -> flash + categorie en base). Revue adversariale passee, 6 findings corriges
(borne display_order, violation unique -> 422, et 4 tests de regression : nom dupliqué, depassement, toggle
inverse, not-found update/toggle).
Base volontaire : dev.
CategoryController (index/create/store/edit/update/toggle) sur AdminController : chaque action gardee par category.manage (RG-T03), mutations validees CSRF (RG-T01) + serveur (RG-T18 : libelle/slug requis, format, bornes, unicite ; ordre 0..65535), allowlist de colonnes (RG-T16). Pas de suppression dure (FK RESTRICT) : bascule is_active. Violation de contrainte d'unicite (concurrence) traduite en 422, pas en 500. Messages flash apres redirection. CategoryRepository : couche d'acces introduite pour les entites CRUD. Vues admin/categories/{index,form} + not_found, sorties echappees. 144 tests (unit + integration DB), PHPStan L6. Etablit le pattern reutilise par produits/menus/users.