From 0f4c8b2051cae17fbdd7e02017ad5b41c61e210c Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 11 Dec 2024 18:26:57 +0100 Subject: [PATCH] refactor: move to new mailer --- .../RunnerSelfServiceController.ts | 6 +- src/mailer.ts | 64 +++++++++++++++---- 2 files changed, 54 insertions(+), 16 deletions(-) diff --git a/src/controllers/RunnerSelfServiceController.ts b/src/controllers/RunnerSelfServiceController.ts index ec98eda..f708576 100644 --- a/src/controllers/RunnerSelfServiceController.ts +++ b/src/controllers/RunnerSelfServiceController.ts @@ -131,7 +131,7 @@ export class RunnerSelfServiceController { const token = JwtCreator.createSelfService(runner); try { - await Mailer.sendSelfserviceForgottenMail(runner.email, token, locale) + await Mailer.sendSelfserviceForgottenMail(runner.email, runner.id, runner.firstname, runner.lastname, token, locale) } catch (error) { throw new MailSendingError(); } @@ -157,7 +157,7 @@ export class RunnerSelfServiceController { response.token = JwtCreator.createSelfService(runner); try { - await Mailer.sendSelfserviceWelcomeMail(runner.email, response.token, locale) + await Mailer.sendSelfserviceWelcomeMail(runner.email, runner.id, runner.firstname, runner.lastname, response.token, locale) } catch (error) { throw new MailSendingError(); } @@ -182,7 +182,7 @@ export class RunnerSelfServiceController { response.token = JwtCreator.createSelfService(runner); try { - await Mailer.sendSelfserviceWelcomeMail(runner.email, response.token, locale) + await Mailer.sendSelfserviceWelcomeMail(runner.email, runner.id, runner.firstname, runner.lastname, response.token, locale) } catch (error) { throw new MailSendingError(); } diff --git a/src/mailer.ts b/src/mailer.ts index fae23d1..5fbf5bd 100644 --- a/src/mailer.ts +++ b/src/mailer.ts @@ -18,9 +18,19 @@ export class Mailer { */ public static async sendResetMail(to_address: string, token: string, locale: string = "en") { try { - await axios.post(`${Mailer.base}/reset?locale=${locale}&key=${Mailer.key}`, { - address: to_address, - resetKey: token + await axios.request({ + method: 'POST', + url: `${Mailer.base}/api/v1/email`, + headers: { + authorization: `Bearer ${Mailer.key}`, + 'content-type': 'application/json' + }, + data: { + to: to_address, + templateName: 'password-reset', + language: locale, + data: { token: token } + } }); } catch (error) { if (Mailer.testing) { return true; } @@ -32,12 +42,26 @@ export class Mailer { * Function for sending a runner selfservice welcome mail. * @param to_address The address the mail will be sent to. Should always get pulled from a runner object. * @param token The requested selfservice token - will be combined with the app_url to generate a selfservice profile link. - */ - public static async sendSelfserviceWelcomeMail(to_address: string, token: string, locale: string = "en") { + */ + public static async sendSelfserviceWelcomeMail(to_address: string, runner_id: number, firstname: string, lastname: string, token: string, locale: string = "en") { try { - await axios.post(`${Mailer.base}/registration?locale=${locale}&key=${Mailer.key}`, { - address: to_address, - selfserviceToken: token + await axios.request({ + method: 'POST', + url: `${Mailer.base}/api/v1/email`, + headers: { + authorization: `Bearer ${Mailer.key}`, + 'content-type': 'application/json' + }, + data: { + to: to_address, + templateName: 'welcome', + language: locale, + data: { + name: `${firstname} ${lastname}`, + barcode_content: `${runner_id}`, + link: 'https://portal.lauf-fuer-kaya.de/profile/' + token + } + } }); } catch (error) { if (Mailer.testing) { return true; } @@ -49,12 +73,26 @@ export class Mailer { * Function for sending a runner selfservice link forgotten mail. * @param to_address The address the mail will be sent to. Should always get pulled from a runner object. * @param token The requested selfservice token - will be combined with the app_url to generate a selfservice profile link. - */ - public static async sendSelfserviceForgottenMail(to_address: string, token: string, locale: string = "en") { + */ + public static async sendSelfserviceForgottenMail(to_address: string, runner_id: number, firstname: string, lastname: string, token: string, locale: string = "en") { try { - await axios.post(`${Mailer.base}/registration_forgot?locale=${locale}&key=${Mailer.key}`, { - address: to_address, - selfserviceToken: token + await axios.request({ + method: 'POST', + url: `${Mailer.base}/api/v1/email`, + headers: { + authorization: `Bearer ${Mailer.key}`, + 'content-type': 'application/json' + }, + data: { + to: to_address, + templateName: 'welcome', + language: locale, + data: { + name: `${firstname} ${lastname}`, + barcode_content: `${runner_id}`, + link: 'https://portal.lauf-fuer-kaya.de/profile/' + token + } + } }); } catch (error) { if (Mailer.testing) { return true; }