You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Répondre à un message du support par e-mail depuis l'admin (A-13, E-22) #574
Reste de #349 (découverte de CODE sur l'Inbox) : décision de l'opérateur, la PR #552 livre la liste, le détail et « Marquer traité » d'A-13, sans « Répondre ». L'API n'a encore aucun code d'envoi d'e-mail : le premier envoi Brevo est celui du lien de connexion, #397, qui pose le client Brevo, l'expéditeur et la clé (prérequis humains #467 et #366). Bloqué par #397.
Comportement attendu
API : POST /admin/support/:id/reply (rôles moderator et admin ; editor : 403), corps { body } non vide. Envoie l'e-mail Brevo au modèle « réponse du support » d'E-22, à l'adresse reply_email du message, dans la langue du message (locale). Enregistre reply_body, replied_by, replied_at dans support_messages (migration Drizzle additive) et journalise l'action dans admin_actions. Un échec d'envoi ne marque rien comme répondu et renvoie une erreur explicite.
Admin (A-13) : bouton « Répondre » dans le détail d'un message, champ de réponse, envoi ; la réponse envoyée s'affiche dans la fiche avec son auteur et sa date. L'encart provisoire de Admin : support (A-13) #349 (« comment répondre en attendant ») est retiré.
Critères d'acceptation
Une réponse part par e-mail dans la langue de l'utilisateur et reste visible dans la fiche (critère déplacé de Admin : support (A-13) #349)
reply_body, replied_by, replied_at sont persistés par une migration additive, et l'action figure au journal A-12
Un editor reçoit 403 ; un envoi Brevo en échec n'enregistre pas de réponse
Tests de l'endpoint (succès, rôle refusé, message inconnu, échec d'envoi) ; aucune adresse réelle dans les tests
Notes techniques
Réutiliser le client d'envoi posé par #397 (aucun second client Brevo). Niveau de risque attendu : 2 (nouvelle donnée persistée, nouvel endpoint authentifié, appel sortant).
Chef de projet (point quotidien du 2026-10-23) : lien vers le wiki corrigé dans la description, l'ancre API#admin-rôle-moderator-ou-admin n'existe plus ; la section s'appelle désormais « Admin (rôles editor, moderator, admin) ».
Activity
IlanAMG commentedon Oct 23, 2026
Chef de projet (point quotidien du 2026-10-23) : lien vers le wiki corrigé dans la description, l'ancre
API#admin-rôle-moderator-ou-adminn'existe plus ; la section s'appelle désormais « Admin (rôles editor, moderator, admin) ».