feat(borne): cablage de la borne sur l'API (CORS + data.js) #61
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#61
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/p4-borne-cors-datajs"
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?
La borne kiosk consomme desormais l'API REST catalogue au lieu des fichiers JSON statiques (docs/api/conventions.md 5.2 et 10). - Middleware CORS (App\Core\Cors) : origine UNIQUE et EXACTE (CORS_ALLOWED_ORIGIN, sans joker), scope /api/, GET/POST/OPTIONS, Content-Type, SANS credentials, fail-closed. Cable dans index.php : preflight OPTIONS -> 204 avant le routeur, decoration de la reponse y compris le 500 du catch (erreur lisible cross-origin). CorsTest (10 tests). - data.js : URLs -> /api/categories|products|menus, deballe l'enveloppe {data}, traduit la forme canonique (name/price_cents/image_path) vers la forme borne (nom/prix/image/type), regroupe par slug de categorie, glisse les menus sous la cle 'menus'. Signatures publiques inchangees (pages intactes). findProduct desambigue par categorie : product et menu ont des espaces d'id distincts (tables auto-increment separees), un id peut donc collisionner. data.test.js (10 tests). - loadAllergens reste statique (data/allergens.json) ; consommation des slots /api/menus + refactor du composeur differes.