705af53b6e2af931aea660d69dc0ccd8d6336b0f
[motion2.git] / server / services / ami / trigger / index.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x02b6=['./cmContact','./script','../../../config/environment','../../../config/logger','../ami','defaults','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','custom:agentringnoanswer','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','undefined','motionChannel','voice','debug','inspect','checkTriggers','interface','hasOwnProperty','status','merge','length','action','toLowerCase','contactmanager','browser','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','data3','data4','uriLocation','windowWidth','isNil','data5','800','windowHeight','data6','600','winArguments','format','name','data1','jscripty','user:%s','trigger:%s','exec','integration','queue','routeId','urlforward','script','query','search','replace','channel','AllConditions','every','AnyConditions','some','checkConditions','checkTrigger:\x20trigger','evt','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','message','event','agent','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','created','equals','exports','util','url','mustache','ioredis'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x02b6,0xfe));var _0x602b=function(_0x43fd00,_0x3ab566){_0x43fd00=_0x43fd00-0x0;var _0x3f944b=_0x02b6[_0x43fd00];return _0x3f944b;};'use strict';var util=require(_0x602b('0x0'));var _=require('lodash');var url=require(_0x602b('0x1'));var Mustache=require(_0x602b('0x2'));var Redis=require(_0x602b('0x3'));var urlforward=require('./urlforward');var integration=require('./integration');var cmContact=require(_0x602b('0x4'));var script=require(_0x602b('0x5'));var config=require(_0x602b('0x6'));var logger=require(_0x602b('0x7'))('trigger');var ami=require(_0x602b('0x8'));config['redis']=_[_0x602b('0x9')](config[_0x602b('0xa')],{'host':_0x602b('0xb'),'port':0x18eb});var io=require(_0x602b('0xc'))(new Redis(config[_0x602b('0xa')]));var operators={'equals':function(_0x16ba0d,_0x1ef23d){return _0x16ba0d==_0x1ef23d;},'not_equals':function(_0x3a9579,_0x20c7cf){return _0x3a9579!=_0x20c7cf;}};var barAndWebActions=[_0x602b('0xd'),'url',_0x602b('0xe')];function Trigger(_0x5ca85d){this['triggers']=_0x5ca85d[_0x602b('0xf')];this['agents']=_0x5ca85d[_0x602b('0x10')];this[_0x602b('0x11')]=_0x5ca85d['voiceQueues'];this[_0x602b('0x12')]=_0x5ca85d[_0x602b('0x12')];this[_0x602b('0x13')]=_0x5ca85d['voiceExtensions'];this[_0x602b('0x14')]=_0x5ca85d[_0x602b('0x14')];this[_0x602b('0x15')]=_0x5ca85d[_0x602b('0x15')];this[_0x602b('0x16')]=_0x5ca85d[_0x602b('0x16')];this[_0x602b('0x17')]=_0x5ca85d['sugarcrmAccounts'];this['zohoAccounts']=_0x5ca85d[_0x602b('0x18')];this[_0x602b('0x19')]=_0x5ca85d[_0x602b('0x19')];this[_0x602b('0x1a')]=_0x5ca85d[_0x602b('0x1a')];this[_0x602b('0x1b')]=_0x5ca85d[_0x602b('0x1b')];this[_0x602b('0x1c')]=_0x5ca85d[_0x602b('0x1c')];this['freshsalesAccounts']=_0x5ca85d[_0x602b('0x1d')];this[_0x602b('0x1e')]={'zendesk':this[_0x602b('0x14')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x602b('0x15')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0x602b('0x19')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x602b('0x1c')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x602b('0x1b')]};ami['on'](_0x602b('0x1f'),this[_0x602b('0x20')]['bind'](this));ami['on'](_0x602b('0x21'),this[_0x602b('0x20')]['bind'](this));ami['on'](_0x602b('0x22'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x24'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x25'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on']('custom:agentnoanswer',this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on']('custom:agentbusy',this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on']('custom:agentcongestion',this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x26'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x27'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x28'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on']('custom:timeout',this[_0x602b('0x20')]['bind'](this));ami['on'](_0x602b('0x29'),this[_0x602b('0x2a')][_0x602b('0x23')](this));ami['on'](_0x602b('0x2b'),this[_0x602b('0x2a')][_0x602b('0x23')](this));ami['on'](_0x602b('0x2c'),this[_0x602b('0x2a')][_0x602b('0x23')](this));ami['on'](_0x602b('0x2d'),this[_0x602b('0x20')]['bind'](this));ami['on']('custom:closedinteraction',this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x2e'),this[_0x602b('0x20')]['bind'](this));ami['on'](_0x602b('0x2f'),this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on']('custom:outgoingmessage',this[_0x602b('0x20')][_0x602b('0x23')](this));ami['on'](_0x602b('0x30'),this[_0x602b('0x20')]['bind'](this));ami['on'](_0x602b('0x31'),this['syncCustomEvent'][_0x602b('0x23')](this));ami['on'](_0x602b('0x32'),this[_0x602b('0x20')][_0x602b('0x23')](this));}Trigger[_0x602b('0x33')][_0x602b('0x34')]=function(_0x5a8461,_0x1af3d0,_0x22a179){logger[_0x602b('0x35')](_0x5a8461,_0x1af3d0,JSON['stringify'](_0x22a179));io['to'](_0x5a8461)[_0x602b('0x34')](_0x1af3d0,_0x22a179);};Trigger['prototype'][_0x602b('0x20')]=function(_0x22484a){var _0x4d85cd=_['clone'](_0x22484a);if(typeof _0x4d85cd['motionChannel']===_0x602b('0x36')){_0x4d85cd[_0x602b('0x37')]=_0x602b('0x38');}logger[_0x602b('0x39')](_0x602b('0x20'),util[_0x602b('0x3a')](_0x4d85cd,{'showHidden':!![],'depth':null}));this[_0x602b('0x3b')](_0x4d85cd);};Trigger[_0x602b('0x33')][_0x602b('0x2a')]=function(_0x5babe9){if(this[_0x602b('0x10')][_0x5babe9[_0x602b('0x3c')]]){this[_0x602b('0x20')](_0x5babe9);}};Trigger['prototype'][_0x602b('0x3b')]=function(_0x9ffde4){var _0x10529a;for(var _0x4afaab in this[_0x602b('0xf')]){if(this[_0x602b('0xf')][_0x602b('0x3d')](_0x4afaab)){if(this[_0x602b('0xf')][_0x4afaab][_0x602b('0x3e')]){_0x10529a=this['checkTrigger'](this[_0x602b('0xf')][_0x4afaab],_0x9ffde4);if(_0x10529a){_[_0x602b('0x3f')](_0x9ffde4,_0x9ffde4['variables']);for(var _0x2838c5=0x0,_0x221fc6,_0x3888f6,_0x7093f9;_0x2838c5<this['triggers'][_0x4afaab]['Actions'][_0x602b('0x40')];_0x2838c5+=0x1){_0x221fc6=this['triggers'][_0x4afaab]['Actions'][_0x2838c5];if(this[_0x602b('0x10')][_0x9ffde4['interface']]){switch(_0x221fc6[_0x602b('0x41')][_0x602b('0x42')]()){case _0x602b('0x43'):break;case'motionbar':case _0x602b('0x44'):var _0x4da73c={};switch(barAndWebActions[_0x221fc6['data1']]){case _0x602b('0xd'):_0x4da73c[_0x602b('0x45')]=_0x221fc6[_0x602b('0x46')];_0x4da73c[_0x602b('0x47')]=this[_0x602b('0x12')][_0x221fc6[_0x602b('0x46')]]?Mustache[_0x602b('0x48')](this[_0x602b('0x12')][_0x221fc6[_0x602b('0x46')]][_0x602b('0x47')],_0x9ffde4):_0x602b('0x49');break;case'url':_0x4da73c[_0x602b('0x4a')]=this[_0x602b('0x4b')](_0x221fc6[_0x602b('0x46')],_0x9ffde4,_['isNil'](_0x221fc6[_0x602b('0x4c')])?!![]:parseInt(_0x221fc6[_0x602b('0x4c')],0xa));if(_['isNil'](_0x221fc6[_0x602b('0x4d')])){_0x4da73c['location']='0';}else{_0x4da73c[_0x602b('0x4e')]=_0x221fc6[_0x602b('0x4d')];_0x4da73c[_0x602b('0x4f')]=_[_0x602b('0x50')](_0x221fc6[_0x602b('0x51')])?_0x602b('0x52'):_0x221fc6[_0x602b('0x51')];_0x4da73c[_0x602b('0x53')]=_[_0x602b('0x50')](_0x221fc6[_0x602b('0x54')])?_0x602b('0x55'):_0x221fc6[_0x602b('0x54')];}break;case'winapp':_0x4da73c['winApplication']=_0x221fc6['data2']?Mustache[_0x602b('0x48')](_0x221fc6[_0x602b('0x46')],_0x9ffde4):'';_0x4da73c[_0x602b('0x56')]=_0x221fc6[_0x602b('0x4c')]?Mustache[_0x602b('0x48')](_0x221fc6[_0x602b('0x4c')],_0x9ffde4):'';break;}this[_0x602b('0x34')](util[_0x602b('0x57')]('user:%s',this[_0x602b('0x10')][_0x9ffde4['interface']][_0x602b('0x58')]),util[_0x602b('0x57')]('trigger:%s:%s',_0x221fc6[_0x602b('0x41')]['toLowerCase'](),barAndWebActions[_0x221fc6[_0x602b('0x59')]]),_[_0x602b('0x3f')](_0x4da73c,_0x9ffde4));break;case _0x602b('0x5a'):this[_0x602b('0x34')](util[_0x602b('0x57')](_0x602b('0x5b'),this[_0x602b('0x10')][_0x9ffde4['interface']][_0x602b('0x58')]),util[_0x602b('0x57')](_0x602b('0x5c'),_0x221fc6['action'][_0x602b('0x42')]()),_[_0x602b('0x3f')]({'ProjectId':parseInt(_0x221fc6[_0x602b('0x59')],0xa)},_0x9ffde4));break;default:this['emit'](util[_0x602b('0x57')]('user:%s',this[_0x602b('0x10')][_0x9ffde4[_0x602b('0x3c')]][_0x602b('0x58')]),util[_0x602b('0x57')](_0x602b('0x5c'),_0x221fc6[_0x602b('0x41')][_0x602b('0x42')]()),_[_0x602b('0x3f')]({},_0x221fc6,_0x9ffde4));}}switch(_0x221fc6[_0x602b('0x41')][_0x602b('0x42')]()){case _0x602b('0x43'):cmContact[_0x602b('0x5d')](this[_0x602b('0x10')][_0x9ffde4[_0x602b('0x3c')]],this[_0x602b('0xf')][_0x4afaab],_0x221fc6,_0x9ffde4);break;case _0x602b('0x5e'):integration[_0x602b('0x5d')](_0x221fc6,_0x9ffde4,this[_0x602b('0x1e')],this[_0x602b('0x10')][_0x9ffde4['interface']],this[_0x602b('0x11')][_0x9ffde4[_0x602b('0x5f')]],this[_0x602b('0x13')][_0x9ffde4[_0x602b('0x60')]]);break;case _0x602b('0x61'):urlforward[_0x602b('0x5d')](_0x221fc6,_0x9ffde4);break;case _0x602b('0x62'):script[_0x602b('0x5d')](_0x221fc6,_0x9ffde4);break;}}}}}}};Trigger[_0x602b('0x33')][_0x602b('0x4b')]=function(_0x2fa7f1,_0xfd97e,_0x385a1d){var _0x583e78=url['parse'](Mustache[_0x602b('0x48')](_0x2fa7f1,_0xfd97e),!![]);if(_0x385a1d){_['merge'](_0x583e78[_0x602b('0x63')],_0xfd97e);}delete _0x583e78[_0x602b('0x64')];var _0x2caa82=url['format'](_0x583e78);_0x2caa82=_0x2caa82[_0x602b('0x65')](/\/\?/g,'?');return _0x2caa82;};Trigger['prototype']['checkTrigger']=function(_0x2ac98a,_0x3d2c00){var _0x377a84=!![];var _0x5e2a76=!![];var _0x3ef918=![];if(_0x2ac98a[_0x602b('0x66')]===_0x3d2c00[_0x602b('0x37')]){_0x3ef918=!![];}if(_0x2ac98a[_0x602b('0x67')]['length']){_0x377a84=_[_0x602b('0x68')](_0x2ac98a[_0x602b('0x67')],this['checkConditions'](_0x3d2c00,_0x2ac98a[_0x602b('0x66')]));}if(_0x2ac98a[_0x602b('0x69')]['length']){_0x5e2a76=_[_0x602b('0x6a')](_0x2ac98a[_0x602b('0x69')],this[_0x602b('0x6b')](_0x3d2c00,_0x2ac98a[_0x602b('0x66')]));}var _0x5c2128=_0x3ef918&&_0x377a84&&_0x5e2a76;logger[_0x602b('0x39')](_0x602b('0x6c'),util['inspect'](_0x2ac98a,{'showHidden':!![],'depth':null}),_0x602b('0x6d'),util[_0x602b('0x3a')](_0x3d2c00,{'showHidden':!![],'depth':null}),_0x3ef918,_0x377a84,_0x5e2a76);return _0x5c2128;};Trigger[_0x602b('0x33')]['checkConditions']=function(_0x1dcb40,_0x7e37f0){return function(_0x591f57){switch(_0x591f57['field']){case _0x602b('0x6e'):if(_0x1dcb40['channel']===_0x7e37f0){if(_0x7e37f0===_0x602b('0x6f')){return _0x1dcb40['ChatWebsiteId']?operators[_0x591f57[_0x602b('0x70')]](Number(_0x591f57[_0x602b('0x71')]),_0x1dcb40[_0x602b('0x72')]):![];}else{return _0x1dcb40[_[_0x602b('0x73')](_0x7e37f0)+_0x602b('0x74')]?operators[_0x591f57['operator']](Number(_0x591f57['value']),_0x1dcb40[_[_0x602b('0x73')](_0x7e37f0)+'AccountId']):![];}}break;case'interaction':case _0x602b('0x75'):if(_0x1dcb40[_0x602b('0x66')]===_0x7e37f0){return _0x1dcb40[_0x602b('0x76')]?operators[_0x591f57[_0x602b('0x70')]](_0x591f57[_0x602b('0x71')],_0x1dcb40['event']):![];}break;case _0x602b('0x5f'):return _0x1dcb40[_0x602b('0x5f')]?operators[_0x591f57[_0x602b('0x70')]](_0x591f57[_0x602b('0x71')],_0x1dcb40[_0x602b('0x5f')]):![];case _0x602b('0x77'):return _0x1dcb40[_0x602b('0x78')]?operators[_0x591f57[_0x602b('0x70')]](_0x591f57['value'],_0x1dcb40[_0x602b('0x78')]):![];case _0x602b('0x79'):return _0x1dcb40[_0x602b('0x79')]?operators[_0x591f57['operator']](_0x591f57['value'],_0x1dcb40['lastevent']):![];case'routeId':return _0x1dcb40[_0x602b('0x60')]?operators[_0x591f57[_0x602b('0x70')]](_0x591f57[_0x602b('0x71')],_0x1dcb40[_0x602b('0x60')]):![];case _0x602b('0x7a'):if(_0x591f57[_0x602b('0x71')]===_0x602b('0x7b'))_0x591f57[_0x602b('0x71')]=null;return typeof _0x1dcb40[_0x602b('0x7c')]!==_0x602b('0x36')?operators[_0x591f57[_0x602b('0x70')]](_0x591f57[_0x602b('0x71')],_0x1dcb40['substatus']):![];case _0x602b('0x7d'):if(_0x1dcb40[_0x602b('0x66')]===_0x7e37f0){return _0x591f57[_0x602b('0x71')]===_0x602b('0x7e')&&_0x591f57[_0x602b('0x70')]===_0x602b('0x7f')?!![]:![];}break;}return![];};};module[_0x602b('0x80')]=Trigger;