feat(backend): #28 templates email validation compte (Handlebars)

- Templates .hbs parent principal, co-parent, AM + lien create-password
- app_name / app_url / expéditeur via ConfigService (sendEmail)
- validateUser: renouvelle token création MDP + envoi email si sans password
- Dist: assets *.hbs (nest-cli)
- Tests unitaires MailService (mock sendEmail)
- Doc liste tickets #28 terminé

Made-with: Cursor
This commit is contained in:
2026-04-17 18:34:04 +02:00
parent 68efa91c39
commit 94d9428c43
11 changed files with 439 additions and 32 deletions
+12 -10
View File
@@ -591,22 +591,24 @@ Installer et configurer Nodemailer pour l'envoi d'emails.
---
### Ticket #28 : [Backend] Templates Email - Validation
### Ticket #28 : [Backend] Templates Email - Validation
**Estimation** : 3h
**Labels** : `backend`, `p2`, `email`
**Labels** : `backend`, `p2`, `email`
**Statut** : ✅ TERMINÉ
**Description** :
Créer les templates d'emails pour la validation des comptes (avec lien création MDP).
**Tâches** :
- [ ] Template Parent 1 (création MDP)
- [ ] URL app : Lire depuis `ConfigService.get('app_url')`
- [ ] Nom app : Lire depuis `ConfigService.get('app_name')`
- [ ] Expéditeur : Lire depuis ConfigService
- [ ] Template Parent 2 (co-parent création MDP)
- [ ] Template AM (création MDP)
- [ ] Intégration Handlebars
- [ ] Tests d'envoi
- [x] Template Parent 1 (création MDP)`account-validated-parent-primary.hbs`
- [x] URL app : Lire depuis `ConfigService.get('app_url')` (lien `/create-password?token=…`)
- [x] Nom app : Lire depuis `ConfigService.get('app_name')`
- [x] Expéditeur : via `sendEmail` (email_from_name / email_from_address)
- [x] Template Parent 2 (co-parent création MDP)`account-validated-parent-coparent.hbs`
- [x] Template AM (création MDP)`account-validated-am.hbs`
- [x] Intégration Handlebars + copie `.hbs` dans `dist` (`nest-cli.json` assets)
- [x] Envoi déclenché dans `UserService.validateUser` (parent / AM sans mot de passe) + renouvellement expiration token
- [x] Tests unitaires (`mail.service.spec.ts`, mock `sendEmail`)
**Référence** : [20_WORKFLOW-CREATION-COMPTE.md](./20_WORKFLOW-CREATION-COMPTE.md#étape-6--réception-de-la-notification)