feat(admin): consultation des messages de contact (#80) #124
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/admin-contact-messages"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PR 2/2 de l'issue #80 — la vue admin en lecture seule des messages de contact.
Stackée sur #123 (
feat/contact-message-model-and-form) — base à retargetter surmainune fois #123 mergée. Le diff propre à cette PR : le contratlist*/types/contact.ts, le module APIadmin-contact, la page/admin/messages, les tests.Contenu
Contrat partagé
listContactMessagesQuerySchema(filtretypeoptionnel).types/contact.ts:ContactMessageAdminView—author: { id, firstName, lastName, email } | null(null= compte supprimé depuis l'envoi).API —
admin-contact.{routes,service}.tsGET /admin/api/contact?type=(requireAdmin), tricreatedAt desc, plafondCONTACT_MESSAGES_PAGE_SIZE = 200(même esprit queCORRECTIONS_PAGE_SIZE— vue de triage, pas export).admin.routes.ts(adminRouter.use("/contact", adminContactRouter)). Aucune route d'écriture — pas de workflow de traitement dans cette première version.Front — page
/admin/messagesMessagesPage(+.scss) : tableau lecture seule — date, expéditeur (nom + email, ou « Compte supprimé »), badge de type, message, page (font-mono), user-agent tronqué (valeur complète au survol). Un<select>filtre par type.Inbox) dansAdminLayout;adminApiClient.getContactMessages({ type }); i18nadmin.nav.messages+ blocadmin.messages.*.Tests
apps/api/test/admin-contact.test.ts(Mocha) : 401 sans session admin ; tri récent d'abord +authorrésolu ; filtretype;typeinconnu → 400 ; plafond 200 ;author: nullaprès suppression du compte.apps/web/cypress/e2e/admin-messages.cy.ts: rendu lecture seule (expéditeur / « Compte supprimé » / badge, aucun bouton d'action), filtre par type via le query param.Docs :
backend-architecture.md(sectionadmin:ForgejoServicenon, mais la routeGET /admin/api/contact+ l'eventcontact.submitteddans la liste).Vérifié localement
pnpm lint✅ ·pnpm build✅ · Cypressadmin-messages.cy.ts+admin-corrections.cy.ts+admin-layout.cy.ts: 9/9 ✅. Mocha → CI.Closes #80.
🤖 Generated with Claude Code
712772dc02to0c8cda7f3e