Merge pull request #396 from bluewave-labs/feat/emails

Removed sendgrid, use emailService for all emails.  Updated env vars,…
This commit is contained in:
Alexander Holliday authored and GitHub committed 2024-07-19 16:39:43 -07:00
commit 2c5dc85f81
10 files changed
+83 -996

No files matched your search

+17 -19
View File
@@ -16,10 +16,6 @@ require("dotenv").config();
const { errorMessages, successMessages } = require("../utils/messages");
var jwt = require("jsonwebtoken");
const SERVICE_NAME = "auth";
const { sendEmail } = require("../utils/sendEmail");
const {
registerTemplate,
} = require("../utils/emailTemplates/registerTemplate");
/**
* Creates and returns JWT token with an arbitrary payload
@@ -91,15 +87,12 @@ const registerController = async (req, res, next) => {
const token = issueToken(userForToken);
// Sending email to user with pre defined template
const template = registerTemplate("https://www.bluewavelabs.ca");
await sendEmail(
[newUser.email],
"Welcome to Uptime Monitor",
template,
"Registered."
req.emailService.buildAndSendEmail(
"welcomeEmailTemplate",
{ name: newUser.firstName },
newUser.email,
"Welcome to Uptime Monitor"
);
return res.status(200).json({
success: true,
msg: successMessages.AUTH_CREATE_USER,
@@ -260,7 +253,7 @@ const checkAdminController = async (req, res) => {
* @param {Express.Request} req
* @property {Object} req.body
* @property {string} req.body.email
* @param {Express.Response} res
* @property {EmailService} req.body.emailService
* @returns {Promise<Express.Response>}
*/
const recoveryRequestController = async (req, res, next) => {
@@ -269,18 +262,23 @@ const recoveryRequestController = async (req, res, next) => {
const user = await req.db.getUserByEmail(req, res);
if (user) {
const recoveryToken = await req.db.requestRecoveryToken(req, res);
await sendEmail(
[req.body.email],
"Uptime Monitor Password Recovery",
`<a clicktracking="off" href='${process.env.CLIENT_HOST}/set-new-password/${recoveryToken.token}'>Click here to reset your password</a>`,
`Recovery token: ${recoveryToken.token}`
const name = user.firstName;
const email = req.body.email;
const url = `${process.env.CLIENT_HOST}/set-new-password/${recoveryToken.token}`;
const msgId = await req.emailService.buildAndSendEmail(
"passwordResetTemplate",
{ name, email, url },
email,
"Bluewaves Uptime Password Resest"
);
return res.status(200).json({
success: true,
msg: successMessages.AUTH_CREATE_RECOVERY_TOKEN,
data: msgId,
});
}
// TODO Email token to user
} catch (error) {
error.service = SERVICE_NAME;
next(error);