1 var _ = require('lodash');
2 var Mustache = require('mustache');
4 var sequelize = require('../../models').sequelize;
5 var ChatEnquiry = require('../../models').ChatEnquiry;
6 var MailMessage = require('../../models').MailMessage;
7 var MailServerOut = require('../../models').MailServerOut;
10 console.log('Trigger Chat Initialization...');
12 ChatEnquiry.afterCreate(function (chatEnquiry, options) {
13 var _chatEnquiry = chatEnquiry;
20 .then(function (chatWebsite) {
21 _chatWebsite = chatWebsite;
22 _chatEnquiry.chatWebsite = _chatWebsite.name;
23 if (_chatWebsite && _chatWebsite.enquiry_forwarding && _chatWebsite.enquiry_forwarding_address) {
25 .getOfflineTemplate();
28 message: 'chatWebsite can\'t send offline messages via mail'
32 .then(function (offlineTemplate) {
33 _offlineTemplate = offlineTemplate;
34 if (_offlineTemplate) {
35 _offlineTemplate.html = Mustache.render(_offlineTemplate.html, _chatEnquiry);
36 _offlineTemplate.subject = Mustache.render(_offlineTemplate.subject, _chatEnquiry);
39 message: 'offlineTemplate not found. ChatWebsite: ' + _chatWebsite.name
50 .then(function (mailServerOut) {
51 _mailServerOut = mailServerOut;
53 if (!_mailServerOut) {
54 throw new Error('Motion Service SMTP not configured!');
59 from: _mailServerOut.username,
60 to: _chatWebsite.enquiry_forwarding_address,
61 subject: _offlineTemplate.subject,
62 html: _offlineTemplate.html,
65 transaction: options ? options.transaction : null
71 module.exports = Chat;