mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 13:50:31 +00:00
83 lines
2.5 KiB
TypeScript
83 lines
2.5 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import * as path from 'path';
|
|
import { SystemUser } from '../System/models/SystemUser';
|
|
import { ModelObject } from 'objection';
|
|
import { ConfigService } from '@nestjs/config';
|
|
import { Mail } from '../Mail/Mail';
|
|
import { MailTransporter } from '../Mail/MailTransporter.service';
|
|
|
|
@Injectable()
|
|
export class AuthenticationMailMesssages {
|
|
constructor(
|
|
private readonly configService: ConfigService,
|
|
private readonly mailTransporter: MailTransporter,
|
|
) {}
|
|
|
|
/**
|
|
* Sends reset password message.
|
|
* @param {ISystemUser} user - The system user.
|
|
* @param {string} token - Reset password token.
|
|
* @returns {Mail}
|
|
*/
|
|
resetPasswordMessage(user: ModelObject<SystemUser>, token: string) {
|
|
const baseURL = this.configService.get('app.baseUrl');
|
|
|
|
return new Mail()
|
|
.setSubject('Bigcapital - Password Reset')
|
|
.setView('mail/ResetPassword.html')
|
|
.setTo(user.email)
|
|
.setAttachments([
|
|
{
|
|
filename: 'bigcapital.png',
|
|
path: path.join(global.__static_dirname, `/images/bigcapital.png`),
|
|
cid: 'bigcapital_logo',
|
|
},
|
|
])
|
|
.setData({
|
|
resetPasswordUrl: `${baseURL}/auth/reset_password/${token}`,
|
|
first_name: user.firstName,
|
|
last_name: user.lastName,
|
|
});
|
|
}
|
|
|
|
sendResetPasswordMail(user: ModelObject<SystemUser>, token: string) {
|
|
const mail = this.resetPasswordMessage(user, token);
|
|
|
|
return this.mailTransporter.send(mail);
|
|
}
|
|
|
|
/**
|
|
* Sends signup verification mail.
|
|
* @param {string} email - Email address
|
|
* @param {string} fullName - User name.
|
|
* @param {string} token - Verification token.
|
|
* @returns {Mail}
|
|
*/
|
|
signupVerificationMail(email: string, fullName: string, token: string) {
|
|
const baseURL = this.configService.get('app.baseUrl');
|
|
const verifyUrl = `${baseURL}/auth/email_confirmation?token=${token}&email=${email}`;
|
|
|
|
return new Mail()
|
|
.setSubject('Bigcapital - Verify your email')
|
|
.setView('mail/SignupVerifyEmail.html')
|
|
.setTo(email)
|
|
.setAttachments([
|
|
{
|
|
filename: 'bigcapital.png',
|
|
path: path.join(global.__static_dirname, `/images/bigcapital.png`),
|
|
cid: 'bigcapital_logo',
|
|
},
|
|
])
|
|
.setData({ verifyUrl, fullName });
|
|
}
|
|
|
|
sendSignupVerificationMail(email: string, fullName: string, token: string) {
|
|
const mail = this.signupVerificationMail(
|
|
email,
|
|
fullName,
|
|
token,
|
|
);
|
|
return this.mailTransporter.send(mail);
|
|
}
|
|
}
|