fix: corriger le flux de réinitialisation par e-mail
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 2m22s
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 2m22s
This commit is contained in:
@@ -8,6 +8,8 @@ import { sendEmail as sendEmailViaService, isEmailServiceConfigured } from "./_c
|
||||
import { generateEmailFromTemplate } from "./emailTemplateGenerator";
|
||||
import { EmailVariables } from "./emailTemplateUtils";
|
||||
|
||||
type GroupEmailType = "teaser" | "rappel1" | "rappel2" | "rappel3" | "rappel4" | "rappel5" | "rappel6";
|
||||
|
||||
interface EmailParams {
|
||||
to: string;
|
||||
subject: string;
|
||||
@@ -612,10 +614,10 @@ export async function sendRappelJ1Email(params: {
|
||||
* Envoie des emails groupés à tous les inscrits d'une séquence
|
||||
*/
|
||||
export async function sendGroupEmail(params: {
|
||||
recipients: Array<{ email: string; prenom: string; nom: string; fonction: string }>;
|
||||
recipients: Array<{ email: string; prenom: string; nom: string; fonction: string | null }>;
|
||||
formationNom: string;
|
||||
sequenceNom: string;
|
||||
type: 'teaser' | 'rappel' | 'rappel_j1';
|
||||
type: GroupEmailType;
|
||||
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
|
||||
lieu?: string;
|
||||
formateur?: string;
|
||||
@@ -630,37 +632,26 @@ export async function sendGroupEmail(params: {
|
||||
apprenantEmail: recipient.email,
|
||||
apprenantPrenom: recipient.prenom,
|
||||
apprenantNom: recipient.nom,
|
||||
apprenantFonction: recipient.fonction,
|
||||
apprenantFonction: recipient.fonction || '',
|
||||
formationNom: params.formationNom,
|
||||
sequenceNom: params.sequenceNom,
|
||||
dates: params.dates,
|
||||
lieu: params.lieu,
|
||||
formateur: params.formateur,
|
||||
});
|
||||
} else if (params.type === 'rappel') {
|
||||
await sendRappelJ7Email({
|
||||
} else {
|
||||
// Un seul chemin pour les six rappels : le contenu est celui du template choisi.
|
||||
await sendRappelEmail({
|
||||
apprenantEmail: recipient.email,
|
||||
apprenantPrenom: recipient.prenom,
|
||||
apprenantNom: recipient.nom,
|
||||
apprenantFonction: recipient.fonction,
|
||||
apprenantFonction: recipient.fonction || '',
|
||||
formationNom: params.formationNom,
|
||||
sequenceNom: params.sequenceNom,
|
||||
dates: params.dates,
|
||||
lieu: params.lieu || '',
|
||||
formateur: params.formateur,
|
||||
});
|
||||
} else {
|
||||
// rappel_j1
|
||||
await sendRappelJ1Email({
|
||||
apprenantEmail: recipient.email,
|
||||
apprenantPrenom: recipient.prenom,
|
||||
apprenantNom: recipient.nom,
|
||||
apprenantFonction: recipient.fonction,
|
||||
formationNom: params.formationNom,
|
||||
sequenceNom: params.sequenceNom,
|
||||
dates: params.dates,
|
||||
lieu: params.lieu,
|
||||
formateur: params.formateur,
|
||||
templateType: params.type,
|
||||
});
|
||||
}
|
||||
sent++;
|
||||
@@ -714,7 +705,13 @@ export async function sendPasswordResetEmail(params: {
|
||||
return sendEmail({
|
||||
to: params.apprenantEmail,
|
||||
subject: 'Réinitialisation de votre mot de passe - Manager Itinova',
|
||||
html: await getEmailTemplate(content, 'reset_password'),
|
||||
// Le modèle reset_password doit recevoir le lien : son bodyContent est personnalisable
|
||||
// et ne doit jamais masquer l'action de réinitialisation.
|
||||
html: await getEmailTemplate(content, 'reset_password', {
|
||||
nomApprenant: params.apprenantNom,
|
||||
prenomApprenant: params.apprenantPrenom,
|
||||
lienReinitialisation: params.resetLink,
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user