- GET/PATCH /house/current — renomme le foyer de l'utilisateur connecté.
PATCH avec houseId null -> 404 HOUSE_NOT_FOUND.
- PATCH /profile/diet { dietId: number | null } — régime du profil ;
null l'efface (étape skippable du parcours). dietId invalide ->
404 DIET_NOT_FOUND.
- GET/PATCH /profile/allergies — allergènes/intolérances, liste d'IDs ;
PATCH remplace l'ensemble complet (pas une fusion, cohérent avec un
multi-select). ID invalide -> 404 ALLERGY_NOT_FOUND.
- 3 nouveaux ErrorCode (4041-4043) + libellés fr.
- Extraction de toSafeProfile() dans src/lib/safe-profile.ts —
auparavant dupliqué dans auth.service.ts et require-auth.ts,
profile.service.ts le réutilise aussi.
- Tests Mocha (28 passing) + Cucumber (15 scenarios) — même convention
que le reste, doc README.
Deuxième commit de la feature profil/foyer/régime/allergènes —
composants front partagés dans le commit suivant.
14 lines
630 B
TypeScript
14 lines
630 B
TypeScript
import type { SafeUserProfile } from "@batch-cooking/shared";
|
|
import type { UserProfile } from "@prisma/client";
|
|
|
|
/**
|
|
* Strips `passwordHash` off a Prisma `UserProfile` before it's ever sent to
|
|
* a client. Shared by every module that hands a profile back to the
|
|
* caller (`auth.service.ts`, `require-auth.ts`, `profile.service.ts`) —
|
|
* previously duplicated inline in each, consolidated here so there's one
|
|
* place this security-relevant stripping happens.
|
|
*/
|
|
export function toSafeProfile(profile: UserProfile): SafeUserProfile {
|
|
const { passwordHash: _passwordHash, ...safeProfile } = profile;
|
|
return safeProfile;
|
|
}
|