-'use strict';
-
-var _ = require('lodash');
-var config = require('../environment');
-var moment = require('moment');
-// var stringifyObject = require('stringify-object');
-
-var sequelize = require('../../models').sequelize;
-var Automation = require('../../models').Automation;
-var FaxRoom = require('../../models').FaxRoom;
-var Settings = require('../../models').Settings;
-var automationTimeout;
-var activeAutomations = {};
-
-function getTimeout() {
- Settings
- .findOne()
- .then(function(result) {
- automationTimeout = result.automation_timeout;
- })
- .catch(function(err) {
- // console.log(err);
- });
-}
-
-function executeAutomation(faxAutomation) {
- var query = {
- where: {}
- };
- var actions = {};
- var conditionsGroup = JSON.parse(faxAutomation.conditions).group;
- var actionsGroup = JSON.parse(faxAutomation.actions).group;
- var subConditions = {};
- var mainOp = conditionsGroup.boolean === 'AND' ? '$and' : '$or';
- query.where[mainOp] = [];
- conditionsGroup.rules.forEach(function(rule) {
- if (rule.operator) {
- // console.log('normal rule');
- query.where[mainOp].push(getCondition(rule));
- } else if (rule.group) {
- // console.log('subgroup');
- var subOp = rule.group.boolean === 'AND' ? '$and' : '$or';
- var tempGroup = {};
- tempGroup[subOp] = [];
- rule.group.rules.forEach(function(subRule) {
- // console.log('subgroup rule');
- tempGroup[subOp].push(getCondition(subRule));
- });
- query.where[mainOp].push(tempGroup);
- }
- });
-
- //
- FaxRoom
- .findAll(query)
- .then(function(res) {
- res.forEach(function(fax) {
- actionsGroup.rules.forEach(function(rule) {
- switch (rule.field.value) {
- case 'status':
- setStatus(fax.id, rule.data);
- break;
- default:
- }
- });
- });
- })
- .catch(function(err) {
- console.log(err);
- });
-}
-
-function setStatus(ticketId, newStatus) {
- FaxRoom.update({
- status: newStatus,
- }, {
- where: {
- id: ticketId
- }
- })
- .catch(function(err) {
- console.log(err);
- });
-}
-
-function getCondition(rule) {
- var result = {};
- switch (rule.field.value) {
- case 'status':
- switch (rule.operator) {
- case '=':
- result[rule.field.value] = rule.data;
- break;
- case '<>':
- result[rule.field.value] = {
- $ne: rule.data
- };
- break;
- default:
- }
- break;
- case 'createdAt':
- var compareDate = moment().subtract(parseInt(rule.data, 10), 'hours').format("YYYY-MM-DD HH:mm:ss");
- switch (rule.operator) {
- case '>':
- result[rule.field.value] = {
- lt: compareDate
- };
- break;
- case '>=':
- result[rule.field.value] = {
- $lte: compareDate
- };
- break;
- case '<':
- result[rule.field.value] = {
- $gt: compareDate
- };
- break;
- case '<=':
- result[rule.field.value] = {
- $gte: compareDate
- };
- break;
- default:
- }
- break;
- default:
- }
- return result;
-}
-
-function createInterval(faxAutomation) {
- activeAutomations['interval' + faxAutomation.id] = setInterval(function() {
- executeAutomation(faxAutomation);
- }, automationTimeout * 1000);
-}
-
-module.exports = function() {
- getTimeout();
-
- Automation.afterCreate(function(doc, options) {
- createInterval(doc);
- });
-
- Automation.afterUpdate(function(doc, options) {
- clearInterval(activeAutomations['interval' + doc.id]);
- createInterval(doc);
- });
-
- Automation.afterDelete(function(doc, options) {
- clearInterval(activeAutomations['interval' + doc.id]);
- });
-
- Automation
- .findAll({
- where: {
- status: true,
- channel: 'fax'
- }
- })
- .then(function(faxAutomations) {
-
- faxAutomations.forEach(function(faxAutomation) {
- createInterval(faxAutomation);
- });
- })
- .catch(function(err) {
- console.error(err);
- });
-};
+var _0x469c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x4D\x61\x69\x6C\x20\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x20","\x6C\x6F\x67","\x46\x61\x78\x20\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x20\x65\x78\x65\x63\x20\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x64","\x64\x61\x74\x61\x31","\x73\x74\x61\x74\x75\x73","\x61\x63\x74\x69\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x41\x63\x74\x69\x6F\x6E\x73","\x74\x68\x65\x6E","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x75\x73\x68","\x24\x61\x6E\x64","\x77\x68\x65\x72\x65","\x41\x6C\x6C","\x24\x6F\x72","\x41\x6E\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x6C\x6C","\x73\x63\x6F\x70\x65","\x41\x75\x74\x6F\x6D\x61\x74\x69\x63\x20\x6D\x61\x69\x6C\x20\x73\x74\x61\x74\x75\x73\x20\x65\x72\x72\x6F\x72","\x75\x70\x64\x61\x74\x65","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x65\x71\x75\x61\x6C\x73","\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x67\x72\x65\x61\x74\x65\x72","\x67\x72\x65\x61\x74\x65\x72\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x6C\x65\x73\x73","\x6C\x65\x73\x73\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x46\x61\x78\x20\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x20","\x20\x73\x65\x74\x20\x77\x69\x74\x68\x20\x74\x69\x6D\x65\x6F\x75\x74\x20","\x74\x69\x6D\x65\x6F\x75\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x20\x63\x72\x65\x61\x74\x65\x64\x2C\x20\x74\x68\x65\x20\x73\x74\x61\x74\x75\x73\x20\x69\x73\x20","\x63\x68\x61\x6E\x6E\x65\x6C","\x66\x61\x78","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x20\x75\x70\x64\x61\x74\x65\x64\x2C\x20\x74\x68\x65\x20\x73\x74\x61\x74\x75\x73\x20\x69\x73\x20","\x46\x61\x78\x20\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x20\x75\x6E\x73\x65\x74\x20","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x20\x64\x65\x6C\x65\x74\x65\x64","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x46\x61\x78\x20\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x20\x69\x6E\x69\x74\x20\x65\x72\x72\x6F\x72"];_0x469c[0];var _=require(_0x469c[1]);var config=require(_0x469c[2]);var moment=require(_0x469c[3]);var sequelize=require(_0x469c[5])[_0x469c[4]];var Automation=require(_0x469c[5])[_0x469c[6]];var FaxRoom=require(_0x469c[5])[_0x469c[7]];var Settings=require(_0x469c[5])[_0x469c[8]];var automationTimeout;var activeFaxAutomations={};function executeAutomation(_0x9c2fxb){console[_0x469c[10]](_0x469c[9],_0x9c2fxb);var _0x9c2fxc;return Automation[_0x469c[30]](_0x469c[29])[_0x469c[28]](_0x9c2fxb)[_0x469c[19]](function(_0x9c2fx11){_0x9c2fxc=_0x9c2fx11;var _0x9c2fx12={where:{$and:[],$or:[]}};_0x9c2fx11[_0x469c[24]][_0x469c[17]](function(_0x9c2fx13){_0x9c2fx12[_0x469c[23]][_0x469c[22]][_0x469c[21]](getCondition(_0x9c2fx13[_0x469c[20]]))});_0x9c2fx11[_0x469c[26]][_0x469c[17]](function(_0x9c2fx13){_0x9c2fx12[_0x469c[23]][_0x469c[25]][_0x469c[21]](getCondition(_0x9c2fx13[_0x469c[20]]))});return FaxRoom[_0x469c[27]](_0x9c2fx12)})[_0x469c[19]](function(_0x9c2fxe){_0x9c2fxe[_0x469c[17]](function(_0x9c2fxf){_0x9c2fxc[_0x469c[18]][_0x469c[17]](function(_0x9c2fx10){switch(_0x9c2fx10[_0x469c[16]]){case _0x469c[15]:setStatus(_0x9c2fxf[_0x469c[13]],_0x9c2fx10[_0x469c[14]]);break;default:}})})})[_0x469c[12]](function(_0x9c2fxd){console[_0x469c[10]](_0x469c[11],_0x9c2fxd)})}function setStatus(_0x9c2fx15,_0x9c2fx16){return FaxRoom[_0x469c[32]]({status:_0x9c2fx16},{where:{id:_0x9c2fx15}})[_0x469c[12]](function(_0x9c2fxd){console[_0x469c[10]](_0x469c[31],_0x9c2fxd)})}function getCondition(_0x9c2fx13){var _0x9c2fx18={};switch(_0x9c2fx13[_0x469c[33]]){case _0x469c[15]:switch(_0x9c2fx13[_0x469c[37]]){case _0x469c[35]:_0x9c2fx18[_0x9c2fx13[_0x469c[33]]]=_0x9c2fx13[_0x469c[34]];break;case _0x469c[36]:_0x9c2fx18[_0x9c2fx13[_0x469c[33]]]={$ne:_0x9c2fx13[_0x469c[34]]};break;default:};break;case _0x469c[46]:var _0x9c2fx19=moment()[_0x469c[41]](parseInt(_0x9c2fx13[_0x469c[34]],10),_0x469c[40])[_0x469c[39]](_0x469c[38]);switch(_0x9c2fx13[_0x469c[37]]){case _0x469c[42]:_0x9c2fx18[_0x9c2fx13[_0x469c[33]]]={lt:_0x9c2fx19};break;case _0x469c[43]:_0x9c2fx18[_0x9c2fx13[_0x469c[33]]]={$lte:_0x9c2fx19};break;case _0x469c[44]:_0x9c2fx18[_0x9c2fx13[_0x469c[33]]]={$gt:_0x9c2fx19};break;case _0x469c[45]:_0x9c2fx18[_0x9c2fx13[_0x469c[33]]]={$gte:_0x9c2fx19};break;default:};break;default:};return _0x9c2fx18}function createInterval(_0x9c2fx11){console[_0x469c[10]](_0x469c[47],_0x9c2fx11[_0x469c[13]],_0x469c[48],_0x9c2fx11[_0x469c[49]]*60*1000);activeFaxAutomations[_0x469c[50]+_0x9c2fx11[_0x469c[13]]]=setInterval(function(){executeAutomation(_0x9c2fx11[_0x469c[13]])},_0x9c2fx11[_0x469c[49]]*60*1000)}module[_0x469c[51]]=function(){Automation[_0x469c[55]](function(_0x9c2fx1b,_0x9c2fx1c){console[_0x469c[10]](_0x469c[47],_0x9c2fx1b[_0x469c[13]],_0x469c[52],_0x9c2fx1b[_0x469c[15]]);if(_0x9c2fx1b[_0x469c[15]]&&_0x9c2fx1b[_0x469c[53]]===_0x469c[54]){createInterval(_0x9c2fx1b)}});Automation[_0x469c[58]](function(_0x9c2fx1b,_0x9c2fx1c){console[_0x469c[10]](_0x469c[47],_0x9c2fx1b[_0x469c[13]],_0x469c[56],_0x9c2fx1b[_0x469c[15]]);if(activeFaxAutomations[_0x469c[50]+_0x9c2fx1b[_0x469c[13]]]){console[_0x469c[10]](_0x469c[57],_0x9c2fx1b[_0x469c[13]]);clearInterval(activeFaxAutomations[_0x469c[50]+_0x9c2fx1b[_0x469c[13]]]);delete activeFaxAutomations[_0x469c[50]+_0x9c2fx1b[_0x469c[13]]]};if(_0x9c2fx1b[_0x469c[15]]&&_0x9c2fx1b[_0x469c[53]]===_0x469c[54]){createInterval(_0x9c2fx1b)}});Automation[_0x469c[60]](function(_0x9c2fx1b,_0x9c2fx1c){console[_0x469c[10]](_0x469c[47],_0x9c2fx1b[_0x469c[13]],_0x469c[59]);if(activeFaxAutomations[_0x469c[50]+_0x9c2fx1b[_0x469c[13]]]){console[_0x469c[10]](_0x469c[57],_0x9c2fx1b[_0x469c[13]]);clearInterval(activeFaxAutomations[_0x469c[50]+_0x9c2fx1b[_0x469c[13]]]);delete activeFaxAutomations[_0x469c[50]+_0x9c2fx1b[_0x469c[13]]]}});return Automation[_0x469c[30]](_0x469c[29])[_0x469c[27]]({where:{status:true,channel:_0x469c[54]},attributes:[_0x469c[13],_0x469c[49]]})[_0x469c[19]](function(_0x9c2fx1d){_0x9c2fx1d[_0x469c[17]](function(_0x9c2fx11){createInterval(_0x9c2fx11)})})[_0x469c[12]](function(_0x9c2fxd){console[_0x469c[10]](_0x469c[61],_0x9c2fxd)})}
\ No newline at end of file