2966dced30ae4ec549f23a16cab7c5f24516c663
[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 _0xcbbf=['hasOwnProperty','status','checkTrigger','merge','Actions','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','uri','buildUri','isNil','data3','data4','uriLocation','windowWidth','800','data5','windowHeight','600','winApplication','winArguments','format','name','trigger:%s:%s','jscripty','user:%s','trigger:%s','action','exec','integration','script','parse','search','replace','length','every','AllConditions','checkConditions','channel','some','AnyConditions','checkTrigger:\x20trigger','evt','account','ChatWebsiteId','value','upperFirst','AccountId','operator','interaction','message','event','queue','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','offlineMessage','created','equals','exports','util','lodash','url','mustache','ioredis','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','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','bind','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','info','stringify','emit','prototype','motionChannel','undefined','voice','debug','inspect','checkTriggers','interface'];(function(_0x175396,_0x661ab7){var _0x5a0536=function(_0xded175){while(--_0xded175){_0x175396['push'](_0x175396['shift']());}};_0x5a0536(++_0x661ab7);}(_0xcbbf,0x14e));var _0xfcbb=function(_0xf611b7,_0xf93b00){_0xf611b7=_0xf611b7-0x0;var _0x34b975=_0xcbbf[_0xf611b7];return _0x34b975;};'use strict';var util=require(_0xfcbb('0x0'));var _=require(_0xfcbb('0x1'));var url=require(_0xfcbb('0x2'));var Mustache=require(_0xfcbb('0x3'));var Redis=require(_0xfcbb('0x4'));var urlforward=require('./urlforward');var integration=require(_0xfcbb('0x5'));var cmContact=require(_0xfcbb('0x6'));var script=require(_0xfcbb('0x7'));var config=require(_0xfcbb('0x8'));var logger=require(_0xfcbb('0x9'))(_0xfcbb('0xa'));var ami=require(_0xfcbb('0xb'));config[_0xfcbb('0xc')]=_['defaults'](config[_0xfcbb('0xc')],{'host':_0xfcbb('0xd'),'port':0x18eb});var io=require(_0xfcbb('0xe'))(new Redis(config[_0xfcbb('0xc')]));var operators={'equals':function(_0x45cd28,_0x472448){return _0x45cd28==_0x472448;},'not_equals':function(_0x44c923,_0x1ca313){return _0x44c923!=_0x1ca313;}};var barAndWebActions=[_0xfcbb('0xf'),_0xfcbb('0x2'),_0xfcbb('0x10')];function Trigger(_0xee5258){this[_0xfcbb('0x11')]=_0xee5258[_0xfcbb('0x11')];this[_0xfcbb('0x12')]=_0xee5258[_0xfcbb('0x12')];this['voiceQueues']=_0xee5258[_0xfcbb('0x13')];this[_0xfcbb('0x14')]=_0xee5258[_0xfcbb('0x14')];this[_0xfcbb('0x15')]=_0xee5258[_0xfcbb('0x15')];this[_0xfcbb('0x16')]=_0xee5258[_0xfcbb('0x16')];this['freshdeskAccounts']=_0xee5258[_0xfcbb('0x17')];this[_0xfcbb('0x18')]=_0xee5258[_0xfcbb('0x18')];this[_0xfcbb('0x19')]=_0xee5258[_0xfcbb('0x19')];this[_0xfcbb('0x1a')]=_0xee5258[_0xfcbb('0x1a')];this['deskAccounts']=_0xee5258[_0xfcbb('0x1b')];this['vtigerAccounts']=_0xee5258[_0xfcbb('0x1c')];this[_0xfcbb('0x1d')]=_0xee5258[_0xfcbb('0x1d')];this['dynamics365Accounts']=_0xee5258[_0xfcbb('0x1e')];this[_0xfcbb('0x1f')]=_0xee5258[_0xfcbb('0x1f')];this[_0xfcbb('0x20')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xfcbb('0x18')],'freshdesk':this[_0xfcbb('0x17')],'sugarcrm':this[_0xfcbb('0x19')],'zoho':this['zohoAccounts'],'desk':this[_0xfcbb('0x1b')],'vtiger':this[_0xfcbb('0x1c')],'dynamics365':this[_0xfcbb('0x1e')],'freshsales':this[_0xfcbb('0x1f')],'servicenow':this[_0xfcbb('0x1d')]};ami['on'](_0xfcbb('0x21'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on']('custom:agentconnect',this['syncCustomEvent']['bind'](this));ami['on']('custom:agentringnoanswer',this['syncCustomEvent']['bind'](this));ami['on']('custom:agentcomplete',this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x24'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x25'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x26'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentcongestion',this['syncCustomEvent'][_0xfcbb('0x23')](this));ami['on']('custom:agentreject',this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x27'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfcbb('0x29'),this['syncCustomEvent'][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x2a'),this[_0xfcbb('0x2b')][_0xfcbb('0x23')](this));ami['on']('custom:dialconnect',this[_0xfcbb('0x2b')][_0xfcbb('0x23')](this));ami['on']('custom:dialend',this[_0xfcbb('0x2b')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x2c'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x2d'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x2e'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on']('custom:incomingmessage',this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x2f'),this[_0xfcbb('0x22')]['bind'](this));ami['on'](_0xfcbb('0x30'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));ami['on'](_0xfcbb('0x31'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfcbb('0x32'),this[_0xfcbb('0x22')][_0xfcbb('0x23')](this));}Trigger['prototype']['emit']=function(_0x17d037,_0xce2796,_0x208502){logger[_0xfcbb('0x33')](_0x17d037,_0xce2796,JSON[_0xfcbb('0x34')](_0x208502));io['to'](_0x17d037)[_0xfcbb('0x35')](_0xce2796,_0x208502);};Trigger[_0xfcbb('0x36')][_0xfcbb('0x22')]=function(_0x5968d8){var _0x2bb3ea=_['clone'](_0x5968d8);if(typeof _0x2bb3ea[_0xfcbb('0x37')]===_0xfcbb('0x38')){_0x2bb3ea[_0xfcbb('0x37')]=_0xfcbb('0x39');}logger[_0xfcbb('0x3a')](_0xfcbb('0x22'),util[_0xfcbb('0x3b')](_0x2bb3ea,{'showHidden':!![],'depth':null}));this[_0xfcbb('0x3c')](_0x2bb3ea);};Trigger[_0xfcbb('0x36')][_0xfcbb('0x2b')]=function(_0x2ea0d4){if(this[_0xfcbb('0x12')][_0x2ea0d4[_0xfcbb('0x3d')]]){this[_0xfcbb('0x22')](_0x2ea0d4);}};Trigger[_0xfcbb('0x36')][_0xfcbb('0x3c')]=function(_0x473d41){var _0x5d1bcb;for(var _0x2e2f7d in this[_0xfcbb('0x11')]){if(this[_0xfcbb('0x11')][_0xfcbb('0x3e')](_0x2e2f7d)){if(this[_0xfcbb('0x11')][_0x2e2f7d][_0xfcbb('0x3f')]){_0x5d1bcb=this[_0xfcbb('0x40')](this[_0xfcbb('0x11')][_0x2e2f7d],_0x473d41);if(_0x5d1bcb){_[_0xfcbb('0x41')](_0x473d41,_0x473d41['variables']);for(var _0x1936c5=0x0,_0x15dbce,_0x295c54,_0x57b7e4;_0x1936c5<this[_0xfcbb('0x11')][_0x2e2f7d]['Actions']['length'];_0x1936c5+=0x1){_0x15dbce=this['triggers'][_0x2e2f7d][_0xfcbb('0x42')][_0x1936c5];if(this[_0xfcbb('0x12')][_0x473d41['interface']]){switch(_0x15dbce['action'][_0xfcbb('0x43')]()){case _0xfcbb('0x44'):break;case _0xfcbb('0x45'):case _0xfcbb('0x46'):var _0x483d2f={};switch(barAndWebActions[_0x15dbce[_0xfcbb('0x47')]]){case _0xfcbb('0xf'):_0x483d2f[_0xfcbb('0x48')]=_0x15dbce[_0xfcbb('0x49')];_0x483d2f[_0xfcbb('0x4a')]=this[_0xfcbb('0x14')][_0x15dbce[_0xfcbb('0x49')]]?Mustache[_0xfcbb('0x4b')](this['templates'][_0x15dbce[_0xfcbb('0x49')]]['html'],_0x473d41):'template\x20not\x20found';break;case'url':_0x483d2f[_0xfcbb('0x4c')]=this[_0xfcbb('0x4d')](_0x15dbce[_0xfcbb('0x49')],_0x473d41,_[_0xfcbb('0x4e')](_0x15dbce[_0xfcbb('0x4f')])?!![]:parseInt(_0x15dbce['data3'],0xa));if(_[_0xfcbb('0x4e')](_0x15dbce[_0xfcbb('0x50')])){_0x483d2f['location']='0';}else{_0x483d2f[_0xfcbb('0x51')]=_0x15dbce['data4'];_0x483d2f[_0xfcbb('0x52')]=_['isNil'](_0x15dbce['data5'])?_0xfcbb('0x53'):_0x15dbce[_0xfcbb('0x54')];_0x483d2f[_0xfcbb('0x55')]=_[_0xfcbb('0x4e')](_0x15dbce['data6'])?_0xfcbb('0x56'):_0x15dbce['data6'];}break;case _0xfcbb('0x10'):_0x483d2f[_0xfcbb('0x57')]=_0x15dbce[_0xfcbb('0x49')]?Mustache[_0xfcbb('0x4b')](_0x15dbce[_0xfcbb('0x49')],_0x473d41):'';_0x483d2f[_0xfcbb('0x58')]=_0x15dbce[_0xfcbb('0x4f')]?Mustache['render'](_0x15dbce[_0xfcbb('0x4f')],_0x473d41):'';break;}this['emit'](util[_0xfcbb('0x59')]('user:%s',this['agents'][_0x473d41[_0xfcbb('0x3d')]][_0xfcbb('0x5a')]),util[_0xfcbb('0x59')](_0xfcbb('0x5b'),_0x15dbce['action'][_0xfcbb('0x43')](),barAndWebActions[_0x15dbce[_0xfcbb('0x47')]]),_['merge'](_0x483d2f,_0x473d41));break;case _0xfcbb('0x5c'):this['emit'](util[_0xfcbb('0x59')](_0xfcbb('0x5d'),this[_0xfcbb('0x12')][_0x473d41[_0xfcbb('0x3d')]][_0xfcbb('0x5a')]),util[_0xfcbb('0x59')](_0xfcbb('0x5e'),_0x15dbce[_0xfcbb('0x5f')]['toLowerCase']()),_[_0xfcbb('0x41')]({'ProjectId':parseInt(_0x15dbce['data1'],0xa)},_0x473d41));break;default:this['emit'](util[_0xfcbb('0x59')](_0xfcbb('0x5d'),this['agents'][_0x473d41[_0xfcbb('0x3d')]][_0xfcbb('0x5a')]),util[_0xfcbb('0x59')](_0xfcbb('0x5e'),_0x15dbce[_0xfcbb('0x5f')]['toLowerCase']()),_[_0xfcbb('0x41')]({},_0x15dbce,_0x473d41));}}switch(_0x15dbce[_0xfcbb('0x5f')]['toLowerCase']()){case'contactmanager':cmContact[_0xfcbb('0x60')](this[_0xfcbb('0x12')][_0x473d41[_0xfcbb('0x3d')]],this[_0xfcbb('0x11')][_0x2e2f7d],_0x15dbce,_0x473d41);break;case _0xfcbb('0x61'):integration[_0xfcbb('0x60')](_0x15dbce,_0x473d41,this['accounts'],this['agents'][_0x473d41['interface']],this['voiceQueues'][_0x473d41['queue']],this['voiceExtensions'][_0x473d41['routeId']]);break;case'urlforward':urlforward[_0xfcbb('0x60')](_0x15dbce,_0x473d41);break;case _0xfcbb('0x62'):script[_0xfcbb('0x60')](_0x15dbce,_0x473d41);break;}}}}}}};Trigger[_0xfcbb('0x36')][_0xfcbb('0x4d')]=function(_0x46cba9,_0x8c1f95,_0x16b8d1){var _0x28ff62=url[_0xfcbb('0x63')](Mustache[_0xfcbb('0x4b')](_0x46cba9,_0x8c1f95),!![]);if(_0x16b8d1){_[_0xfcbb('0x41')](_0x28ff62['query'],_0x8c1f95);}delete _0x28ff62[_0xfcbb('0x64')];var _0x5bc480=url['format'](_0x28ff62);_0x5bc480=_0x5bc480[_0xfcbb('0x65')](/\/\?/g,'?');return _0x5bc480;};Trigger['prototype'][_0xfcbb('0x40')]=function(_0x356b70,_0x4976eb){var _0x4d4f40=!![];var _0x3c7738=!![];var _0x149634=![];if(_0x356b70['channel']===_0x4976eb['motionChannel']){_0x149634=!![];}if(_0x356b70['AllConditions'][_0xfcbb('0x66')]){_0x4d4f40=_[_0xfcbb('0x67')](_0x356b70[_0xfcbb('0x68')],this[_0xfcbb('0x69')](_0x4976eb,_0x356b70[_0xfcbb('0x6a')]));}if(_0x356b70['AnyConditions'][_0xfcbb('0x66')]){_0x3c7738=_[_0xfcbb('0x6b')](_0x356b70[_0xfcbb('0x6c')],this[_0xfcbb('0x69')](_0x4976eb,_0x356b70[_0xfcbb('0x6a')]));}var _0x18eacf=_0x149634&&_0x4d4f40&&_0x3c7738;logger[_0xfcbb('0x3a')](_0xfcbb('0x6d'),util[_0xfcbb('0x3b')](_0x356b70,{'showHidden':!![],'depth':null}),_0xfcbb('0x6e'),util['inspect'](_0x4976eb,{'showHidden':!![],'depth':null}),_0x149634,_0x4d4f40,_0x3c7738);return _0x18eacf;};Trigger[_0xfcbb('0x36')]['checkConditions']=function(_0x1e8284,_0xfb348){return function(_0x4c5261){switch(_0x4c5261['field']){case _0xfcbb('0x6f'):if(_0x1e8284[_0xfcbb('0x6a')]===_0xfb348){if(_0xfb348==='chat'){return _0x1e8284[_0xfcbb('0x70')]?operators[_0x4c5261['operator']](Number(_0x4c5261[_0xfcbb('0x71')]),_0x1e8284[_0xfcbb('0x70')]):![];}else{return _0x1e8284[_[_0xfcbb('0x72')](_0xfb348)+_0xfcbb('0x73')]?operators[_0x4c5261[_0xfcbb('0x74')]](Number(_0x4c5261[_0xfcbb('0x71')]),_0x1e8284[_[_0xfcbb('0x72')](_0xfb348)+_0xfcbb('0x73')]):![];}}break;case _0xfcbb('0x75'):case _0xfcbb('0x76'):if(_0x1e8284[_0xfcbb('0x6a')]===_0xfb348){return _0x1e8284[_0xfcbb('0x77')]?operators[_0x4c5261['operator']](_0x4c5261['value'],_0x1e8284[_0xfcbb('0x77')]):![];}break;case _0xfcbb('0x78'):return _0x1e8284['queue']?operators[_0x4c5261[_0xfcbb('0x74')]](_0x4c5261[_0xfcbb('0x71')],_0x1e8284[_0xfcbb('0x78')]):![];case _0xfcbb('0x79'):return _0x1e8284[_0xfcbb('0x7a')]?operators[_0x4c5261[_0xfcbb('0x74')]](_0x4c5261[_0xfcbb('0x71')],_0x1e8284['membername']):![];case'lastevent':return _0x1e8284[_0xfcbb('0x7b')]?operators[_0x4c5261[_0xfcbb('0x74')]](_0x4c5261[_0xfcbb('0x71')],_0x1e8284['lastevent']):![];case _0xfcbb('0x7c'):return _0x1e8284['routeId']?operators[_0x4c5261[_0xfcbb('0x74')]](_0x4c5261['value'],_0x1e8284['routeId']):![];case _0xfcbb('0x7d'):if(_0x4c5261['value']===_0xfcbb('0x7e'))_0x4c5261['value']=null;return typeof _0x1e8284['substatus']!==_0xfcbb('0x38')?operators[_0x4c5261[_0xfcbb('0x74')]](_0x4c5261[_0xfcbb('0x71')],_0x1e8284[_0xfcbb('0x7f')]):![];case _0xfcbb('0x80'):if(_0x1e8284[_0xfcbb('0x6a')]===_0xfb348){return _0x4c5261[_0xfcbb('0x71')]===_0xfcbb('0x81')&&_0x4c5261[_0xfcbb('0x74')]===_0xfcbb('0x82')?!![]:![];}break;}return![];};};module[_0xfcbb('0x83')]=Trigger;