diff --git a/src/mailer.ts b/src/mailer.ts index ea3a775..a831624 100644 --- a/src/mailer.ts +++ b/src/mailer.ts @@ -1,34 +1,41 @@ +import axios from 'axios'; import { config } from './config'; +import { MailSendingError } from './errors/MailErrors'; /** * This class is responsible for all things mail sending. * This uses the mail emplates from src/static/mail_templates */ export class Mailer { - - /** - * The class's default constructor. - * Creates the transporter and tests the connection. - */ - constructor() { - - } + public static base: string = config.mailer_url; + public static key: string = config.mailer_key; /** * Function for sending a test mail from the test mail template. * @param to_address The address the mail will be sent to. Should always get pulled from a user object. * @param token The requested password reset token - will be combined with the app_url to generate a password reset link. */ - public async sendResetMail(to_address: string, token: string) { - + 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 + }); + } catch (error) { + throw new MailSendingError(); + } } /** * Function for sending a test mail from the test mail template. * @param to_address The address the test mail will be sent to - this is the configured from-address by default. */ - public async sendTestMail(to_address: string = config.mail_from) { - + public static async sendTestMail(locale: string = "en") { + try { + await axios.post(`${Mailer.base}/test?locale=${locale}&key=${Mailer.key}`); + } catch (error) { + throw new MailSendingError(); + } } }