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
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,6 +1,6 @@
const { User } = require('../models');
const bcrypt = require('bcrypt');

const NotifyViaEmail = require("../services/notifyViaEmail")
class UserController {
static async post(req, res, next) {
try {
Expand All @@ -19,6 +19,7 @@ class UserController {
lastName: user.lastName,
email: user.email,
};
NotifyViaEmail.sendEmail(response.email)
res.json(response);
} catch (error) {
next(error);
Expand Down
56 changes: 42 additions & 14 deletions services/notifyViaEmail.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,47 @@
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 subject="Confirmación de Registro"
static organizationName="SOMOS MAS"
static welcomeText="Bienvenido"
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: dejaría algunas variables asociadas a una función de envío de bienvenida, así no es reutilizable para otra cosa.

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
}
console.log(data,typeof data);
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: console.log usar solo para debugear.

return data
})
} catch (error) {
throw new Error(error)
}
}
static sendEmail = async (email,) => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Pasar a POO.

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