diff --git a/README.md b/README.md index 10a7c93f9..e538e5050 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ Configure the server with the following environmental variables: | PORT | Optional | `integer` | Specifies Port for Server | | | SENDGRID_API_KEY | Required | `string` | Specifies API KEY for SendGrid email service | | | SYSTEM_EMAIL_ADDRESS | Required | `string` | Specifies System email to be used in emailing service, must be a verified email by sendgrid | | +| LOGIN_PAGE_URL | Required | `string` | Login url to be used in emailing service | | | REDIS_HOST | Required | `string` | Host address for Redis database | | | REDIS_PORT | Required | `integer` | Port for Redis database | | diff --git a/Server/controllers/authController.js b/Server/controllers/authController.js index 257048937..3db0a70a4 100644 --- a/Server/controllers/authController.js +++ b/Server/controllers/authController.js @@ -9,6 +9,8 @@ const logger = require("../utils/logger"); require("dotenv").config(); 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 @@ -53,13 +55,15 @@ const registerController = async (req, res, next) => { // Create a new user try { const newUser = await req.db.insertUser(req, res); - // TODO: Send an email to user - // Will add this later logger.info("New user created!", { service: SERVICE_NAME, userId: newUser._id, }); const token = issueToken(newUser._doc); + + // 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.'); return res .status(200) diff --git a/Server/utils/emailTemplates/downAlertTemplate.js b/Server/utils/emailTemplates/downAlertTemplate.js new file mode 100644 index 000000000..2012d3c18 --- /dev/null +++ b/Server/utils/emailTemplates/downAlertTemplate.js @@ -0,0 +1,469 @@ +/** + * + * @param {String} loginUrl - login Url shared with registered user. + * @param {String} monitorName + * @param {String} timeStamp + * @returns {String} returns html content as String + */ +const downAlertTemplate = (loginUrl, monitorName, timeStamp) => { + return ` + + +
+ + + + + +|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
+
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
+