Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var nodemailer = require('nodemailer'),
- smtpTransport = require('nodemailer-smtp-transport'),
- config = require('../config/config'),
- _ = require('underscore'),
- fs= require("fs"),
- jwt = require('jwt-simple');
- var transporter = nodemailer.createTransport(smtpTransport({
- host: config.mailer.host,
- port: config.mailer.port,
- auth: {
- user: config.mailer.auth.user,
- pass: config.mailer.auth.pass
- }
- }));
- _.templateSettings = {
- interpolate: /\{\{(.+?)\}\}/g
- };
- var functions = {
- sendMail: function(params){
- console.log("in sendmail function" + Date());
- templatePath = __dirname + '/../templates/' + params.template + '.html';
- fs.readFile( templatePath, 'utf8', function(err, file){
- console.log("completed reading template file"+ Date());
- if(err){
- consolelog("error reading template");
- console.log(err)
- }
- else{
- console.log("underscore compiling template"+ Date());
- var compiled = _.template(file);
- var body = compiled(params.data);
- console.log("compilation done"+ Date());
- var mailOptions = {
- from: config.mailer.auth.user, // sender address
- to: params.to, // list of receivers
- bcc: config.mailer.auth.user,
- subject: params.subject,
- html: body
- };
- console.log("sending mail"+ Date());
- // send mail with defined transport object
- transporter.sendMail(mailOptions, function(err, info){
- console.log("mail sent"+ Date());
- if(err){
- console.log("email sending error");
- console.log(err);
- }
- });
- }
- });
- },
- sendsms: function(params, callback){
- var client = require('twilio')(config.sms.account, config.sms.token);
- client.messages.create({
- to: params.to,
- from: config.sms.from,
- body: params.body
- }, function(err, message) {
- callback(err, message.sid);
- });
- },
- getToken : function(req){
- return (req.body && req.body.access_token) || (req.query && req.query.access_token) || req.headers['x-access-token'];
- },
- getKey: function(req){
- return (req.body && req.body.x_key) || (req.query && req.query.x_key) || req.headers['x-key'];
- },
- generateToken: function(user){
- return genToken(user);
- },
- decodeToken: function(token){
- var decoded = {}
- try {
- decoded = jwt.decode(token, config.secret);
- }
- catch (err){
- console.log("error while decoding token");
- console.log(err);
- return null;
- }
- return decoded;
- },
- pwResetToken: function(username){
- var expires = expiresIn(1);
- var token = jwt.encode({
- user: username,
- exp: expires
- }, config.secret);
- return token;
- }
- };
- /** private methods,
- * Method to generate access token
- *
- * @param user
- * @returns {{token: String, expires: *, user: *}}
- */
- function genToken(user) {
- var expires = expiresIn(config.tokenExpiry);
- var token = jwt.encode({
- user: _.pick(user, ['_id', 'username', 'role']),
- exp: expires
- }, config.secret);
- return {
- token: token,
- expires: expires,
- user: _.pick(user, ['username', 'role'])
- };
- }
- function expiresIn(numHours) {
- var dateObj = new Date();
- return dateObj.setHours(dateObj.getHours() + numHours);
- }
- module.exports = functions;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement