docs(readme): documente GET /planning?date=, plus /planning/current

Le README documentait encore `GET /planning/current` (401 sans session,
couvre "aujourd'hui"), une route qui n'existe plus — `planning.routes.ts`
ne définit que `GET /planning?date=YYYY-MM-DD` depuis l'introduction de la
grille de semaine complète. Sans session, `/planning/current` renvoie un
404 générique (route inexistante), pas le 401 documenté.

Documente aussi POST/DELETE /planning/items au passage, absents jusqu'ici.

Closes #55

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Nicolas 2026-08-21 07:58:02 +02:00
parent 8475dd3d2d
commit c6553dc9a3

View file

@ -192,16 +192,18 @@ provisionne un vrai Postgres de service (`.github/workflows/ci.yml`) et exécute
## Planning (apps/api) ## Planning (apps/api)
- `GET /planning/current` — nécessite le cookie de session (401 sinon). Renvoie le - `GET /planning?date=YYYY-MM-DD` — nécessite le cookie de session (401 sinon).
planning du foyer de l'utilisateur connecté qui couvre la date du jour (`Planning` Renvoie le planning du foyer de l'utilisateur connecté qui couvre `date`
dont `start_date <= aujourd'hui <= finish_date`), items inclus avec leur recette (`Planning` dont `start_date <= date <= finish_date`), items inclus avec leur
résolue en `{ id, name }` — ou `null` s'il n'y en a aucun (foyer sans planning en recette résolue en `{ id, name }` — ou `null` s'il n'y en a aucun (foyer sans
cours, ou profil sans foyer). `null` est une réponse **valide** (200), pas une planning couvrant cette semaine, ou profil sans foyer). `null` est une
erreur : aujourd'hui rien ne permet encore de créer un planning (le module « Calcul réponse **valide** (200), pas une erreur.
batch-cooking », voir [specs/batch-cooking-architecture.md](specs/batch-cooking-architecture.md), - `POST /planning/items` — ajoute une recette à un créneau (jour/repas) du
reste à construire), donc c'est l'état attendu tant que ce module n'existe pas. planning du foyer connecté, créant la semaine correspondante à la volée si
- Type de réponse partagé : `PlanningView` (`packages/shared/src/types/planning.ts`), besoin.
consommé tel quel par `apps/web`. - `DELETE /planning/items/:id` — retire un item du planning.
- Type de réponse partagé : `PlanningView`/`PlanningItemView`
(`packages/shared/src/types/planning.ts`), consommé tel quel par `apps/web`.
Détail de `AsyncRequestHandler`/`wrapAsyncHandler` (`packages/express-tools`) — Détail de `AsyncRequestHandler`/`wrapAsyncHandler` (`packages/express-tools`) —
premier endpoint à combiner `requireAuth`/`AuthLocals` avec un handler async, ce qui premier endpoint à combiner `requireAuth`/`AuthLocals` avec un handler async, ce qui
@ -289,7 +291,7 @@ Une fois connecté, l'utilisateur atterrit sur `src/layouts/AppLayout.tsx` — s
(nav Planning/Recettes/Liste de courses/Foyer & profil + nom/déconnexion en pied) et (nav Planning/Recettes/Liste de courses/Foyer & profil + nom/déconnexion en pied) et
`<Outlet />` pour la route active — montée une seule fois comme route parente de tout `<Outlet />` pour la route active — montée une seule fois comme route parente de tout
l'espace authentifié (`App.tsx`), pas dupliquée par page. `src/pages/HomePage.tsx` l'espace authentifié (`App.tsx`), pas dupliquée par page. `src/pages/HomePage.tsx`
(routée sur `/`) affiche le planning de la semaine du foyer (`GET /planning/current`, (routée sur `/`) affiche le planning de la semaine du foyer (`GET /planning?date=`,
voir plus haut) avec ses états chargement/erreur/vide/rempli ; `Recettes` et `Liste de voir plus haut) avec ses états chargement/erreur/vide/rempli ; `Recettes` et `Liste de
courses` n'ont pas encore de backend dédié et rendent pour l'instant le même courses` n'ont pas encore de backend dédié et rendent pour l'instant le même
composant `ComingSoonPage``Foyer & profil` (`src/pages/HouseholdPage.tsx`), lui, composant `ComingSoonPage``Foyer & profil` (`src/pages/HouseholdPage.tsx`), lui,