Skip to content

Commit

Permalink
[EMAIL] Changes in email
Browse files Browse the repository at this point in the history
[version] Upgrade to 1.2.6
  • Loading branch information
pervaizdattoo committed Nov 30, 2019
1 parent 5c5cd8a commit a51a39f
Show file tree
Hide file tree
Showing 14 changed files with 77 additions and 31 deletions.
2 changes: 2 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/Wertik-JS.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "wertik-js",
"version": "1.2.5",
"version": "1.2.6",
"main": "lib/main.js",
"repository": "https://github.com/Uconnect-Technologies/wertik-js.git",
"keywords": ["mysql","graphql","nodejs","boilerplate","javascript","starter-kit","mongodb","api","saas","saas-boilerplate","concepts","wertik-js","database","express-js","express-graphql","express-graphql-boilerplate","mongodb-database","mongoose","reactjs","vuejs"],
Expand Down
2 changes: 1 addition & 1 deletion src/framework/builtinModules/auth/index.ts
Expand Up @@ -82,7 +82,7 @@ export default {
password: hash
});
await context.sendEmail(
context.allEmailTemplates.welcome,
context.emailTemplates.welcome,
{
email: newUser.email,
username: newUser.email,
Expand Down
7 changes: 3 additions & 4 deletions src/framework/mailer/email-templates/welcome.ts
Expand Up @@ -4,12 +4,11 @@ export default `
</p>
<p>
Thanks for joining {{siteName}}, This email is to inform you that you have joined {{siteName}} on {{ date }}, <a
href="{{activationUrl}}?token={{activationToken}}">Click Here</a> to verify your account.
Thanks for joining {{siteName}}, This email is to inform you that you have joined {{siteName}} on {{ date }}, <a target="_blank" href="{{activationUrl}}?token={{activationToken}}">Click Here</a> to verify your account.
</p>
<p>
Thanks <br />
{{ siteName }} Team.
Thanks <br />
{{ siteName }} Team.
</p>
`;
File renamed without changes.
26 changes: 25 additions & 1 deletion src/framework/mailer/index.ts
@@ -1,6 +1,7 @@
let nodemailer = require('nodemailer');
let handlebars = require("handlebars");

export default async function name() {
const defaultMailerInstance = async function () {
let testAccount = await nodemailer.createTestAccount();
let transporter = nodemailer.createTransport({
host: "smtp.ethereal.email",
Expand All @@ -12,4 +13,27 @@ export default async function name() {
}
});
return transporter;
}

export default async function mailerInstance() {
return await defaultMailerInstance();
}

export const sendEmail = async function (template: string, variables: any, credentials: any) {
let transporter: any = await mailerInstance();
let compiled = handlebars.compile(template);
let resultTemplate = compiled(variables);
try {
let send = await transporter.sendMail({
from : credentials.from,
to: credentials.to,
html: resultTemplate,
subject: credentials.subject
})
console.log("Message sent: %s", send.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(send));
return send;
} catch (e) {
console.log(`Failed sending email: ${e.message}`);
}
}
20 changes: 1 addition & 19 deletions src/framework/mailer/send.ts
@@ -1,22 +1,4 @@
let handlebars = require("handlebars");
let nodemailer = require('nodemailer');
import transporterF from "./index";
import mailerInstance from "./index";

export default async function sendEmail(template: string, variables: any, credentials: any) {
let transporter = await transporterF();
let compiled = handlebars.compile(template);
let resultTemplate = compiled(variables);
try {
let send = await transporter.sendMail({
from : credentials.from,
to: credentials.to,
html: resultTemplate,
subject: credentials.subject
})
console.log("Message sent: %s", send.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(send));
return send;
} catch (e) {
console.log(`Failed sending email: ${e.message}`);
}
}
10 changes: 5 additions & 5 deletions src/main.ts
Expand Up @@ -18,19 +18,19 @@ export default function (apps,configuration) {
let dbTables = require("./framework/database/loadTables").default(configuration);
let database = require("./framework/database/connect").default;
let models = require("./framework/database/models").default(dbTables);
let sendEmail = require("./framework/mailer/send").default;
let {sendEmail} = require("./framework/mailer/index");
let seeds = require("./framework/seeds/index").default(configuration, models)
let allEmailTemplates = require("./framework/mailer/allEmailTemplates").default(configuration,__dirname);
let graphqlAppInstance = graphql(expressApp,configuration,dbTables,models,allEmailTemplates,sendEmail,database, WertikEventEmitter);
let restApiInstance = restApi(expressApp,configuration,dbTables,models,allEmailTemplates,sendEmail,database, WertikEventEmitter);
let emailTemplates = require("./framework/mailer/emailTemplates").default(configuration,__dirname);
let graphqlAppInstance = graphql(expressApp,configuration,dbTables,models,emailTemplates,sendEmail,database, WertikEventEmitter);
let restApiInstance = restApi(expressApp,configuration,dbTables,models,emailTemplates,sendEmail,database, WertikEventEmitter);
let socket = socketIO(expressApp);
resolve({
graphql: graphqlAppInstance,
restApi: restApiInstance,
socket: socket,
dbTables: dbTables,
models: models,
emailTemplates: allEmailTemplates,
emailTemplates: emailTemplates,
sendEmail: sendEmail,
database: database,
events: WertikEventEmitter,
Expand Down
4 changes: 4 additions & 0 deletions tsconfig.json
Expand Up @@ -8,8 +8,12 @@
"sourceMap": true,
"outDir": "lib",
"baseUrl": "./",
"lib": ["es6", "dom", "esnext.asynciterable"],
"types": [
"node",
"es2017",
"dom",
"esnext"
]
},
"include": [
Expand Down

0 comments on commit a51a39f

Please sign in to comment.