Skip to content

Commit

Permalink
refactor(api): use mailer config for sendCertificationCenterInvitatio…
Browse files Browse the repository at this point in the history
…nEmail
  • Loading branch information
mariannebost committed May 10, 2024
1 parent 2d95b9f commit 9db7a20
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 57 deletions.
74 changes: 20 additions & 54 deletions api/lib/domain/services/mail-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const PIX_HOME_URL_FRENCH_FRANCE = `${config.domain.pix + config.domain.tldFr}`;
const PIX_APP_URL_FRENCH_FRANCE = `${config.domain.pixApp + config.domain.tldFr}`;
const PIX_APP_CONNECTION_URL_FRENCH_FRANCE = `${PIX_APP_URL_FRENCH_FRANCE}/connexion`;
const PIX_ORGA_HOME_URL_FRENCH_FRANCE = `${config.domain.pixOrga + config.domain.tldFr}`;
const PIX_CERTIF_HOME_URL_FRENCH_FRANCE = `${config.domain.pixCertif + config.domain.tldFr}`;
const HELPDESK_FRENCH_FRANCE = 'https://support.pix.fr';

// INTERNATIONAL
Expand All @@ -31,6 +32,7 @@ const PIX_HOME_URL_INTERNATIONAL = {
nl: `${config.domain.pix + config.domain.tldOrg}/nl-be/`,
};
const PIX_ORGA_HOME_URL_INTERNATIONAL = `${config.domain.pixOrga + config.domain.tldOrg}`;
const PIX_CERTIF_HOME_URL_INTERNATIONAL = `${config.domain.pixCertif + config.domain.tldOrg}`;
const PIX_APP_URL_INTERNATIONAL = `${config.domain.pixApp + config.domain.tldOrg}`;
const PIX_APP_CONNECTION_URL_INTERNATIONAL = {
en: `${PIX_APP_URL_INTERNATIONAL}/connexion/?lang=en`,
Expand Down Expand Up @@ -60,6 +62,7 @@ function _getMailerConfig(locale) {
homeName: PIX_HOME_NAME_INTERNATIONAL,
homeUrl: PIX_HOME_URL_INTERNATIONAL[locale] ?? PIX_HOME_URL_INTERNATIONAL.en,
pixOrgaHomeUrl: PIX_ORGA_HOME_URL_INTERNATIONAL,
pixCertifHomeUrl: PIX_CERTIF_HOME_URL_INTERNATIONAL,
pixAppConnectionUrl: PIX_APP_CONNECTION_URL_INTERNATIONAL[locale] ?? PIX_APP_CONNECTION_URL_INTERNATIONAL.en,
helpdeskUrl: PIX_HELPDESK_URL_INTERNATIONAL[locale] ?? PIX_HELPDESK_URL_INTERNATIONAL.en,
displayNationalLogo: false,
Expand All @@ -69,10 +72,11 @@ function _getMailerConfig(locale) {
return {
homeName: PIX_HOME_NAME_FRENCH_FRANCE,
homeUrl: PIX_HOME_URL_FRENCH_FRANCE,
pixOrgaHomeUrl: PIX_ORGA_HOME_URL_FRENCH_FRANCE,
pixCertifHomeUrl: PIX_CERTIF_HOME_URL_FRENCH_FRANCE,
pixAppConnectionUrl: PIX_APP_CONNECTION_URL_FRENCH_FRANCE,
helpdeskUrl: HELPDESK_FRENCH_FRANCE,
displayNationalLogo: true,
pixOrgaHomeUrl: PIX_ORGA_HOME_URL_FRENCH_FRANCE,
translation: translations.fr,
};
}
Expand Down Expand Up @@ -251,68 +255,30 @@ function sendCertificationCenterInvitationEmail({
code,
locale,
}) {
let templateParams, fromName, subject;
const frenchFranceTemplateParams = {
certificationCenterName,
pixHomeName: PIX_HOME_NAME_FRENCH_FRANCE,
pixHomeUrl: PIX_HOME_URL_FRENCH_FRANCE,
pixCertifHomeUrl: `${config.domain.pixCertif + config.domain.tldFr}`,
redirectionUrl: `${
config.domain.pixCertif + config.domain.tldFr
}/rejoindre?invitationId=${certificationCenterInvitationId}&code=${code}`,
supportUrl: HELPDESK_FRENCH_FRANCE,
...frTranslations['certification-center-invitation-email'].params,
};
const frenchSpokenTemplateParams = {
certificationCenterName,
pixHomeName: PIX_HOME_NAME_INTERNATIONAL,
pixHomeUrl: `${config.domain.pix + config.domain.tldOrg}`,
pixCertifHomeUrl: `${config.domain.pixCertif + config.domain.tldOrg}`,
redirectionUrl: `${
config.domain.pixCertif + config.domain.tldOrg
}/rejoindre?invitationId=${certificationCenterInvitationId}&code=${code}`,
supportUrl: PIX_HELPDESK_URL_INTERNATIONAL.fr,
...frTranslations['certification-center-invitation-email'].params,
};
const englishSpokenTemplateParams = {
locale = locale ?? FRENCH_FRANCE;
const mailerConfig = _getMailerConfig(locale);

const subject = mailerConfig.translation['certification-center-invitation-email'].subject;
const fromName = mailerConfig.translation['email-sender-name']['pix-certif'];
const templateVariables = {
certificationCenterName,
pixHomeName: PIX_HOME_NAME_INTERNATIONAL,
pixHomeUrl: PIX_HOME_URL_INTERNATIONAL.en,
pixCertifHomeUrl: `${config.domain.pixCertif + config.domain.tldOrg}?lang=en`,
redirectionUrl: `${
config.domain.pixCertif + config.domain.tldOrg
}/rejoindre?invitationId=${certificationCenterInvitationId}&code=${code}&lang=en`,
supportUrl: PIX_HELPDESK_URL_INTERNATIONAL.en,
...enTranslations['certification-center-invitation-email'].params,
pixHomeName: mailerConfig.homeName,
pixHomeUrl: mailerConfig.homeUrl,
pixCertifHomeUrl: mailerConfig.pixCertifHomeUrl + (locale === FRENCH_FRANCE ? '' : `?lang=${locale}`),
redirectionUrl:
`${mailerConfig.pixCertifHomeUrl}/rejoindre?invitationId=${certificationCenterInvitationId}&code=${code}` +
(locale === FRENCH_FRANCE ? '' : `&lang=${locale}`),
supportUrl: mailerConfig.helpdeskUrl,
...mailerConfig.translation['certification-center-invitation-email'].params,
};

switch (locale) {
case FRENCH_SPOKEN:
templateParams = frenchSpokenTemplateParams;
subject = frTranslations['certification-center-invitation-email'].subject;
fromName = PIX_CERTIF_NAME_FR;
break;

case ENGLISH_SPOKEN:
templateParams = englishSpokenTemplateParams;
fromName = PIX_CERTIF_NAME_EN;
subject = enTranslations['certification-center-invitation-email'].subject;
break;

default:
templateParams = frenchFranceTemplateParams;
subject = frTranslations['certification-center-invitation-email'].subject;
fromName = PIX_CERTIF_NAME_FR;
break;
}

return mailer.sendEmail({
subject,
from: EMAIL_ADDRESS_NO_RESPONSE,
fromName,
to: email,
template: mailer.certificationCenterInvitationTemplateId,
variables: templateParams,
variables: templateVariables,
});
}

Expand Down
6 changes: 3 additions & 3 deletions api/tests/unit/domain/services/mail-service_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -689,9 +689,9 @@ describe('Unit | Service | MailService', function () {
expect(sendEmailParameters.variables).to.include({
certificationCenterName: 'Centre Pixi',
pixHomeName: 'pix.org',
pixHomeUrl: 'https://pix.org',
pixCertifHomeUrl: 'https://certif.pix.org',
redirectionUrl: `https://certif.pix.org/rejoindre?invitationId=7&code=AAABBBCCC7`,
pixHomeUrl: 'https://pix.org/fr/',
pixCertifHomeUrl: 'https://certif.pix.org?lang=fr',
redirectionUrl: `https://certif.pix.org/rejoindre?invitationId=7&code=AAABBBCCC7&lang=fr`,
supportUrl: 'https://support.pix.org',
...mainTranslationsMapping.fr['certification-center-invitation-email'].params,
});
Expand Down

0 comments on commit 9db7a20

Please sign in to comment.