refactor: move to new mailer
This commit is contained in:
		@@ -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();
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -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; }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user