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 f7d7664397
commit 135dda8440

View file

@ -192,16 +192,18 @@ provisionne un vrai Postgres de service (`.github/workflows/ci.yml`) et exécute
## Planning (apps/api)
- `GET /planning/current` — nécessite le cookie de session (401 sinon). Renvoie le
planning du foyer de l'utilisateur connecté qui couvre la date du jour (`Planning`
dont `start_date <= aujourd'hui <= finish_date`), items inclus avec leur recette
résolue en `{ id, name }` — ou `null` s'il n'y en a aucun (foyer sans planning en
cours, ou profil sans foyer). `null` est une réponse **valide** (200), pas une
erreur : aujourd'hui rien ne permet encore de créer un planning (le module « Calcul
batch-cooking », voir [specs/batch-cooking-architecture.md](specs/batch-cooking-architecture.md),
reste à construire), donc c'est l'état attendu tant que ce module n'existe pas.
- Type de réponse partagé : `PlanningView` (`packages/shared/src/types/planning.ts`),
consommé tel quel par `apps/web`.
- `GET /planning?date=YYYY-MM-DD` — nécessite le cookie de session (401 sinon).
Renvoie le planning du foyer de l'utilisateur connecté qui couvre `date`
(`Planning` dont `start_date <= date <= finish_date`), items inclus avec leur
recette résolue en `{ id, name }` — ou `null` s'il n'y en a aucun (foyer sans
planning couvrant cette semaine, ou profil sans foyer). `null` est une
réponse **valide** (200), pas une erreur.
- `POST /planning/items` — ajoute une recette à un créneau (jour/repas) du
planning du foyer connecté, créant la semaine correspondante à la volée si
besoin.
- `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`) —
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
`<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`
(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
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,