Endpointul public GET /api/categories nu are niciun apelant
GET /api/categories e montat, răspunde 200 pe producție și nu-l cheamă nimic. Comentariul lui spune că e „public modality list for nav/category grid" — nici navigația, nici grila de categorii nu-l folosesc.
Ce am găsit
Ruta e montată la backend/src/routes/index.ts:31:
apiRouter.use('/categories', categoriesRouter);
backend/src/routes/categories.ts cheamă listModalities() și întoarce toPublicModality(...). Verificat pe producție:
curl https://api.hyperice.md/api/categories
[{"id":"airCompression","slug":"air-compression","name":"Air Compression", ...}]
Șase modalități, cu numele în engleză, indiferent de ?locale=.
Nimeni nu o cheamă. git grep -nP "api/categories" -- frontend/src backend/src (fără admin) întoarce o singură linie: propriul comentariu al rutei, categories.ts:8. Niciun test din backend/tests sau frontend/src/test nu o atinge. toPublicModality și interfața PublicModality (backend/src/lib/mappers.ts:291, :300) sunt folosite exclusiv de această rută.
Raftul „Shop by therapy" de pe prima pagină vine din altă parte: cele cinci intrări homeSections.therapyOrder, citite prin useTherapyOrderContent (frontend/src/components/CategoryCards.tsx:4,21). Faptul e scris acum și în schema.prisma, pe modelul Modality, după curățenia din #22 (closed) — deci comentariul rutei și comentariul modelului se contrazic pe față.
Ruta de admin, adminRouter.use('/categories', requireAuth, categoriesRouter) la backend/src/routes/admin/index.ts:46, e vie: o folosește ecranul AdminCategories.tsx. Aceea nu se atinge.
De ce nu s-a rezolvat în #22 (closed)
E o rută publică montată în producție, nu cod care nu se compilează. Ștergerea unei rute e o schimbare care se judecă singură, nu una care se agață de o curățenie de comentarii.
De făcut
-
Scoate montarea publică din backend/src/routes/index.ts:31și fișierulbackend/src/routes/categories.ts, păstrând ruta de admin -
Mută toPublicModalityșiPublicModalitydinmappers.tsodată cu ea, dacă nu le mai folosește nimic -
Dacă ruta se păstrează, corectează-i comentariul: nu servește nicio navigație și niciun grid
Criteriu de acceptare
-
curl https://api.hyperice.md/api/categoriesîntoarce 404 după deploy, iarcurl https://api.hyperice.md/api/admin/categoriescere în continuare autentificare. -
backend:npm run buildșinpm testtrec. - Ecranul de categorii din panou funcționează la fel: listează, adaugă, modifică, șterge.
- Prima pagină arată aceleași cinci intrări în „Shop by therapy".