diff --git a/models/profile.js b/models/profile.js index 2140dfc..48cc176 100644 --- a/models/profile.js +++ b/models/profile.js @@ -1,9 +1,21 @@ -const EventEmitter = require('events'); const Images = require('../modules/images'); const Logger = require('../modules/logger'); +const Mailer = require('../modules/mailer'); const Messages = require('../models/message'); const Mongoose = require('mongoose'); +function outputMessagesAsText (messages, asHtml = false) { + var output = ''; + for (let i = 0; i < messages.length; i++) { + if (asHtml) { + output += (!message.isUser ? '
Question: ' : 'Response
') + message.text + (!message.isUser ? '' : '') + '
Name: ' + result.details.name + '(' + result.details.email + ')
Location: ' + result.details.location + '
About:
' + result.details.about + '
Image:
To approve this profile: click here.
', + }; - ProfileEvents.once('create', (err, result) => { - if (err) { - e.emit('processSubmission', err, null); - } - - if (result) { - e.emit('processSubmission', null, result); - } + Mailer.send(mail, (err, result) => { + resolve({ success: true, mailer: { err: err, result: result } }); + }); + } + }); }); - - module.exports.create(ProfileEvents, insert); + + promise.then((result) => { + e.emit('processSubmission', null, result); + }) + .catch((err) => { + e.emit('processSubmission', err, null); + }); }, update: (e, profileId, profile) => { diff --git a/modules/mailer.js b/modules/mailer.js new file mode 100644 index 0000000..e81eb55 --- /dev/null +++ b/modules/mailer.js @@ -0,0 +1,32 @@ +const Mailer = require('nodemailer'); + +function sendMail (options, callback) { + // create reusable transporter object using the default SMTP transport + let transporter = Mailer.createTransport({ + host: 'mail.fitz.guru', + port: 587, + secure: false, // secure:true for port 465, secure:false for port 587 + auth: { + user: 'support@fitz.guru', + pass: 'NotSt@ff3d!' + } + }); + + callback = typeof callback === 'function' ? callback : (error, info) => { + if (error) { + return console.error(error); + } + + console.debug('Message %s sent: %s', info.messageId, info.response); + }; + + // send mail with defined transport object + transporter.sendMail(options, callback); +} + +module.exports = { + + send: (email, callback) => { + sendMail(mail, callback); + } +}; \ No newline at end of file diff --git a/routes/profiles.js b/routes/profiles.js index 529486e..cc00a18 100644 --- a/routes/profiles.js +++ b/routes/profiles.js @@ -178,20 +178,20 @@ Router.route('/list' + ParamStr) Router.route('/submission') .post((req, res) => { - var ProfileEvents = new EventEmitter(); - var profile = req.body; + var ProfileEvents = new EventEmitter(); + var profile = req.body; - ProfileEvents.once('processSubmission', (err, result) => { - if (err) { - res.status(500).json({ message: 'Could not process user profile submission', err: err, profile: profile }); - } + ProfileEvents.once('processSubmission', (err, result) => { + if (err) { + res.status(500).json({ message: 'Could not process user profile submission', err: err, profile: profile }); + } - if (result) { - res.status(200).json(result); - } - }); + if (result) { + res.status(200).json(result); + } + }); - Profiles.processSubmission(ProfileEvents, profile); + Profiles.processSubmission(ProfileEvents, profile); }); Router.route('/submitted')