-var _ = require('lodash');
-
-function Util() {
- console.log('Trigger Utils Initialization...');
-}
-
-Util.prototype.getActionsByTriggers = function(doc, triggers) {
- var actions = [];
- 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(';') : [];
- triggers.forEach(function(trigger) {
- if (trigger.status) {
- var conditions = {
- op: null,
- results: [],
- subGroups: []
- };
-
- var conditionsGroup = JSON.parse(trigger.conditions).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) {
- //push rules into array to return
- var actionsGroup = JSON.parse(trigger.actions).group;
- actions = actions.concat(actionsGroup.rules);
- }
- }
- });
- doc.dataValues.from = doc.dataValues.from.join(';');
- doc.dataValues.cc = doc.dataValues.cc.join(';');
- doc.dataValues.to = doc.dataValues.to.join(';');
- //return actions array
- return actions;
-}
-
-function checkCondition(rule, doc) {
- // 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(doc[rule.field.value], rule.data);
- // console.log(result);
- break;
- case '<>':
- // console.log('is not equal?');
- result = !_.includes(doc[rule.field.value], rule.data);
- // console.log(result);
- break;
- default:
- }
- return result;
-}
-
-module.exports = Util;
+var _0x4628=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x55\x74\x69\x6C\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x66\x72\x6F\x6D","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x3B","\x73\x70\x6C\x69\x74","\x63\x63","\x74\x6F","\x73\x74\x61\x74\x75\x73","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x41\x6C\x6C","\x41\x6E\x79","\x6C\x65\x6E\x67\x74\x68","\x72\x65\x64\x75\x63\x65","\x63\x6F\x6E\x63\x61\x74","\x6A\x6F\x69\x6E","\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","\x67\x72\x65\x61\x74\x65\x72\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x6C\x65\x73\x73\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x67\x72\x65\x61\x74\x65\x72","\x6C\x65\x73\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x4628[0]);function Util(){console[_0x4628[2]](_0x4628[1])}Util[_0x4628[4]][_0x4628[3]]=function(_0xa19dx3,_0xa19dx4){var _0xa19dx5=[];_0xa19dx3[_0x4628[6]][_0x4628[5]]=_0xa19dx3[_0x4628[6]][_0x4628[5]]?_0xa19dx3[_0x4628[6]][_0x4628[5]][_0x4628[8]](_0x4628[7]):[];_0xa19dx3[_0x4628[6]][_0x4628[9]]=_0xa19dx3[_0x4628[6]][_0x4628[9]]?_0xa19dx3[_0x4628[6]][_0x4628[9]][_0x4628[8]](_0x4628[7]):[];_0xa19dx3[_0x4628[6]][_0x4628[10]]=_0xa19dx3[_0x4628[6]][_0x4628[10]]?_0xa19dx3[_0x4628[6]][_0x4628[10]][_0x4628[8]](_0x4628[7]):[];_0xa19dx4[_0x4628[13]](function(_0xa19dx6){if(_0xa19dx6[_0x4628[11]]){var _0xa19dx7=[];var _0xa19dx8=[];_0xa19dx6[_0x4628[14]][_0x4628[13]](function(_0xa19dx9){_0xa19dx7[_0x4628[12]](checkCondition(_0xa19dx9[_0x4628[6]]||_0xa19dx9,_0xa19dx3[_0x4628[6]]))});_0xa19dx6[_0x4628[15]][_0x4628[13]](function(_0xa19dx9){_0xa19dx8[_0x4628[12]](checkCondition(_0xa19dx9[_0x4628[6]]||_0xa19dx9,_0xa19dx3[_0x4628[6]]))});var _0xa19dxa=[],_0xa19dxb=[];_0xa19dxa[_0x4628[12]](_[_0x4628[17]](_0xa19dx7[_0x4628[16]]?_0xa19dx7:[true],function(_0xa19dxc,_0xa19dxd){return _0xa19dxc&&_0xa19dxd}));_0xa19dxb[_0x4628[12]](_[_0x4628[17]](_0xa19dx8[_0x4628[16]]?_0xa19dx8:[true],function(_0xa19dxc,_0xa19dxd){return _0xa19dxc||_0xa19dxd}));var _0xa19dxe=_0xa19dxa[_0x4628[18]](_0xa19dxb);var _0xa19dxf=_[_0x4628[17]](_0xa19dxe[_0x4628[16]]?_0xa19dxe:[true],function(_0xa19dxc,_0xa19dxd){return _0xa19dxc&&_0xa19dxd});if(_0xa19dxf){_0xa19dx5=_0xa19dx5[_0x4628[18]](_0xa19dx6.Actions)}}});_0xa19dx3[_0x4628[6]][_0x4628[5]]=_0xa19dx3[_0x4628[6]][_0x4628[5]][_0x4628[19]](_0x4628[7]);_0xa19dx3[_0x4628[6]][_0x4628[9]]=_0xa19dx3[_0x4628[6]][_0x4628[9]][_0x4628[19]](_0x4628[7]);_0xa19dx3[_0x4628[6]][_0x4628[10]]=_0xa19dx3[_0x4628[6]][_0x4628[10]][_0x4628[19]](_0x4628[7]);return _0xa19dx5};function checkCondition(_0xa19dx9,_0xa19dx3){var _0xa19dx11;switch(_0xa19dx9[_0x4628[28]]){case _0x4628[22]:_0xa19dx11=(_0xa19dx3[_0xa19dx9[_0x4628[20]]]===_0xa19dx9[_0x4628[21]]);break;case _0x4628[23]:_0xa19dx11=(_0xa19dx3[_0xa19dx9[_0x4628[20]]]!==_0xa19dx9[_0x4628[21]]);break;case _0x4628[24]:_0xa19dx11=(_0xa19dx3[_0xa19dx9[_0x4628[20]]]>=Number(_0xa19dx9[_0x4628[21]]));break;case _0x4628[25]:_0xa19dx11=(_0xa19dx3[_0xa19dx9[_0x4628[20]]]<=Number(_0xa19dx9[_0x4628[21]]));break;case _0x4628[26]:_0xa19dx11=(_0xa19dx3[_0xa19dx9[_0x4628[20]]]>Number(_0xa19dx9[_0x4628[21]]));break;case _0x4628[27]:_0xa19dx11=(_0xa19dx3[_0xa19dx9[_0x4628[20]]]<Number(_0xa19dx9[_0x4628[21]]));break;default:};return _0xa19dx11}module[_0x4628[29]]=Util
\ No newline at end of file