Built motion from commit 7db97eb.|0.0.116
[motion.git] / server / config / triggers / mail.js
index 5b3d76e..6d499df 100644 (file)
@@ -1,156 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var http = require('http');
-var querystring = require('querystring');
-var config = require('../environment');
-
-var sequelize = require('../../models').sequelize;
-var MailMessage = require('../../models').MailMessage;
-var Trigger = require('../../models').Trigger;
-var MailTemplate = require('../../models').MailTemplate;
-var smtp = require('../smtp')();
-
-module.exports = function() {
-
-  MailMessage.afterCreate(function(doc, options) {
-    if (doc.status === 'RECEIVED') {
-      Trigger
-        .findAll({
-          where: {
-            status: true,
-            channel: 'mail'
-          }
-        })
-        .then(function(mailTriggers) {
-
-          mailTriggers.forEach(function(mailTrigger) {
-            var conditions = {
-              op: null,
-              results: [],
-              subGroups: []
-            };
-            // console.log(doc.dataValues);
-            doc.dataValues.from = doc.dataValues.from ? doc.dataValues.from.split(';') : [];
-            doc.dataValues.cc = doc.dataValues.cc ? doc.dataValues.cc.split(';') : [];
-            doc.dataValues.to = doc.dataValues.to ? doc.dataValues.to.split(';') : [];
-
-            var conditionsGroup = JSON.parse(mailTrigger.conditions).group;
-            var actionsGroup = JSON.parse(mailTrigger.actions).group;
-            // console.log(JSON.stringify(conditionsGroup));
-            conditions.op = conditionsGroup.boolean;
-            conditionsGroup.rules.forEach(function(rule) {
-              if (rule.operator) {
-                // console.log('normal rule');
-                conditions.results.push(checkCondition(rule, doc.dataValues));
-              } else if (rule.group) {
-                // console.log('subgroup');
-                var subResults = [];
-                rule.group.rules.forEach(function(subrule) {
-                  // console.log('subgroup rule');
-                  subResults.push(checkCondition(subrule, doc.dataValues));
-                });
-                conditions.subGroups.push({
-                  op: rule.group.boolean,
-                  results: subResults
-                })
-              }
-            });
-            console.log(JSON.stringify(conditions));
-
-            var subResults = [],
-              lastResults = [];
-            conditions.subGroups.forEach(function(subElement) {
-              subResults.push(_.reduce(subElement.results.length ? subElement.results : [true], function(total, n) {
-                if (subElement.op === 'AND') {
-                  return total && n;
-                } else {
-                  return total || n;
-                }
-              }));
-            });
-            lastResults = conditions.results.concat(subResults);
-            var finalResult = _.reduce(lastResults.length ? lastResults : [true], function(total, n) {
-                if (conditions.op === 'AND') {
-                  return total && n;
-                } else {
-                  return total || n;
-                }
-              })
-              // console.log('final result is', finalResult);
-
-            if (finalResult) {
-              actionsGroup.rules.forEach(function(rule) {
-                switch (rule.field.value) {
-                  case 'template':
-                    sendTemplate(rule.data);
-                    break;
-                  default:
-                }
-              });
-            }
-          });
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-  });
-};
-
-function checkCondition(rule, trigger) {
-  // console.log('trigger value ', trigger[rule.field.value]);
-  // console.log('rule data ', rule.data);
-  var result;
-  switch (rule.operator) {
-    case '=':
-      // console.log('is equal?');
-      result = _.includes(trigger[rule.field.value], rule.data);
-      // console.log(result);
-      break;
-    case '<>':
-      // console.log('is not equal?');
-      result = !_.includes(trigger[rule.field.value], rule.data);
-      // console.log(result);
-      break;
-    default:
-  }
-  return result;
-}
-
-function sendTemplate(templateId) {
-  // console.log(templateId);
-  MailTemplate
-    .findById(templateId, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailTemplate) {
-      // console.log('found template');
-      return sequelize
-        .transaction()
-        .then(function(t) {
-          smtp.send({
-            status: 'SENDING',
-            subject: mailTemplate.subject,
-            from: mailTemplate.from,
-            to: mailTemplate.to,
-            cc: mailTemplate.cc || '',
-            html: mailTemplate.html || null,
-            text: mailTemplate.text || null
-          }, null, t, function(err, res) {
-            if (err) {
-              console.error('rollback', err);
-              t.rollback();
-            } else {
-              // console.log('res', res);
-              t.commit();
-            }
-          });
-        });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
+var _0x6757=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x4D\x61\x69\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x63\x61\x74\x63\x68","\x53\x45\x4E\x44\x49\x4E\x47","\x73\x75\x62\x6A\x65\x63\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x3B","\x73\x70\x6C\x69\x74","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x64\x61\x74\x61\x31","\x66\x69\x6E\x64\x42\x79\x49\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x6757[0]);function Mail(){console[_0x6757[2]](_0x6757[1])}Mail[_0x6757[4]][_0x6757[3]]= function(_0xd477x3){sendTemplate(_0xd477x3)};function sendTemplate(_0xd477x5){var _0xd477x6=require(_0x6757[6])[_0x6757[5]];var _0xd477x7=require(_0x6757[6])[_0x6757[7]];var _0xd477x8=require(_0x6757[6])[_0x6757[8]];var _0xd477x9;return _0xd477x8[_0x6757[23]]({where:{service:true}})[_0x6757[20]](function(_0xd477xc){_0xd477x9= _0xd477xc;return _0xd477x6[_0x6757[22]](Number(_0xd477x5[_0x6757[21]]),{include:[{all:true}]})})[_0x6757[20]](function(_0xd477xa){return _0xd477x7[_0x6757[19]]({status:_0x6757[10],subject:_0xd477xa[_0x6757[11]],from:[_0xd477x9[_0x6757[12]]],to:_0xd477x5[_0x6757[15]][_0x6757[14]](_0x6757[13]),cc:_0xd477x5[_0x6757[16]]?_0xd477x5[_0x6757[16]][_0x6757[14]](_0x6757[13]):[],html:_0xd477xa[_0x6757[17]]|| null,text:_0xd477xa[_0x6757[18]]|| null})[_0x6757[9]](function(_0xd477xb){console[_0x6757[2]](_0xd477xb)})})}module[_0x6757[24]]= Mail
\ No newline at end of file