|
All checks were successful
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 20s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 50s
CI / static-tests (push) Successful in 46s
CI / js-tests (push) Successful in 24s
CI / secret-scan (pull_request) Successful in 9s
CI / js-tests (pull_request) Successful in 25s
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.
|
||
|---|---|---|
| .. | ||
| CorsTest.php | ||
| RequestFormBodyTest.php | ||