Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Envío de email a usuario registrado #43

Merged
merged 8 commits into from
Sep 26, 2022
Merged
2 changes: 1 addition & 1 deletion assets/email/plantilla_email.html
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@
<div
style="font-family:Ubuntu, Helvetica, Arial, sans-serif;font-size:11px;line-height:1.5;text-align:left;color:#000000;">
<p style="text-align: center;"><span
style="font-size: 24px;"><strong>{{organizationName }}/strong></span></p>
style="font-size: 24px;"><strong>{{organizationName}}</strong></span></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><span style="font-size: 16px;">{{welcomeText}}</span></p>
</div>
Expand Down
3 changes: 2 additions & 1 deletion controllers/user-controller.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { User } = require('../models');
const { Token } = require('../helpers/Token');
const bcrypt = require('bcrypt');

const NotifyViaEmail = require("../services/notifyViaEmail")
class UserController {
static async post(req, res, next) {
try {
Expand All @@ -22,6 +22,7 @@ class UserController {
email: user.email,
token: token,
};
NotifyViaEmail.sendEmail(response.email,"Confirmación de Registro","Bienvenido")
res.status(200).json(response);
} catch (error) {
res.status(500).json({ msg: 'Could not create user' });
Expand Down
54 changes: 40 additions & 14 deletions services/notifyViaEmail.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,45 @@
require('dotenv').config();
const path = require("path")
const fs = require("fs")
const sgMail = require('@sendgrid/mail');
class NotifyViaEmail {
constructor(email, subject, contentHtml){
this.email=email;
this.subject=subject;
this.contentHtml=contentHtml;
}
sendEmail = async () => {
sgMail.setApiKey(process.env.API_KEY);
await sgMail.send({
to: email,
from: '[email protected]',
subject: subject,
html: contentHtml
});
}
static logo = "https://firebasestorage.googleapis.com/v0/b/aplication1-35a9f.appspot.com/o/LOGO-SOMOS%20MAS.png?alt=media&token=0f852ec5-0c90-42af-aead-7ebe0f0b893a"
static organizationName = "SOMOS MAS"
static contactData = "[email protected]"
static HtmlToString() {
try {

return fs.readFileSync(path.resolve("assets/email/plantilla_email.html"), { encoding: "utf-8" }, (err, data) => {
if (err) {
return err
}
return data
})
} catch (error) {
throw new Error(error)
}
}
static async sendEmail(email,subject,welcomeText) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Esta función solo reconoce envío de bienvenida, tener en cuenta si se quiere extender.

sgMail.setApiKey(process.env.API_KEY);
await sgMail.send({
to: email,
from: NotifyViaEmail.contactData,
subject: subject,
html: NotifyViaEmail.HtmlToString(),
personalizations: [
{
to: [{
"email": email
}],
substitutions: {
"ongLogo": NotifyViaEmail.logo,
"organizationName": NotifyViaEmail.organizationName,
"welcomeText": welcomeText,
"contactData": NotifyViaEmail.contactData
},
}
]
});
}
}
module.exports = NotifyViaEmail;