- schema.prisma: Diet.name/Category.name deviennent @unique (pas dans le doc spec d'origine — ajouté pour que le seed soit idempotent par upsert). Migration écrite à la main + appliquée via `migrate deploy` (`migrate dev` refuse en environnement non-interactif ici) — SQL généré via `prisma migrate diff` pour matcher exactement les conventions Prisma. - src/db/reference-seed-data.ts: seedReferenceData() — 5 régimes, 14 allergènes (règlement UE 1169/2011 annexe II). Chaque allergène = une Category (upsert par nom) + une unique Allergy sous cette catégorie (Allergy elle-même ne porte pas de nom, voir schema.prisma). Réutilisée par prisma/seed.ts (CLI, `prisma db seed`) ET test-support/reset-db.ts (chaque test repart avec ces données de référence, pas des tables vides). - modules/reference/: GET /reference/diets, GET /reference/allergies — publics (pas de requireAuth), lisibles avant qu'un compte existe (wizard d'inscription). - packages/shared: DietView, AllergyView (name résolu côté serveur depuis Category, le split Allergy/Category reste invisible du client). - Tests Mocha + Cucumber, doc README. Premier commit de la feature profil/foyer/régime/allergènes (planifiée en chat) — endpoints foyer/profil dans le commit suivant.
26 lines
783 B
TypeScript
26 lines
783 B
TypeScript
import { wrapAsyncHandler } from "@batch-cooking/express-tools";
|
|
import { Router } from "express";
|
|
import { getAllergies, getDiets } from "./reference.service.js";
|
|
|
|
/**
|
|
* Router mounted at `/reference` in app.ts. Both routes are deliberately
|
|
* public (no `requireAuth`) — this is static reference data, not
|
|
* per-household state, and the signup wizard (household/regime/allergen
|
|
* steps) needs to read it before an account — and therefore a session —
|
|
* exists.
|
|
*/
|
|
export const referenceRouter = Router();
|
|
|
|
referenceRouter.get(
|
|
"/diets",
|
|
wrapAsyncHandler(async (_req, res) => {
|
|
res.status(200).json(await getDiets());
|
|
}),
|
|
);
|
|
|
|
referenceRouter.get(
|
|
"/allergies",
|
|
wrapAsyncHandler(async (_req, res) => {
|
|
res.status(200).json(await getAllergies());
|
|
}),
|
|
);
|