Built motion from commit 9d0783e6.|2.6.13
[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 _0xfa75=['freshsalesAccounts','accounts','zohoAccounts','servicenowAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','prototype','info','emit','clone','motionChannel','voice','debug','inspect','interface','checkTriggers','hasOwnProperty','status','checkTrigger','merge','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','data2','html','render','template\x20not\x20found','uri','isNil','data3','data4','location','uriLocation','windowWidth','data5','windowHeight','600','data6','winapp','winApplication','winArguments','format','user:%s','trigger:%s:%s','jscripty','trigger:%s','name','integration','exec','queue','routeId','urlforward','script','buildUri','parse','replace','AllConditions','every','checkConditions','channel','AnyConditions','some','checkTrigger:\x20trigger','evt','field','chat','ChatWebsiteId','operator','upperFirst','AccountId','message','event','value','membername','lastevent','mailSubstatus','null','substatus','undefined','created','equals','exports','util','lodash','url','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','../ami','redis','socket.io-emitter','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','deskAccounts','vtigerAccounts','dynamics365Accounts'];(function(_0x7c569e,_0x959ff3){var _0x5d9e57=function(_0x48c64e){while(--_0x48c64e){_0x7c569e['push'](_0x7c569e['shift']());}};_0x5d9e57(++_0x959ff3);}(_0xfa75,0x1ef));var _0x5fa7=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xfa75[_0x321bb2];return _0x9c12ed;};'use strict';var util=require(_0x5fa7('0x0'));var _=require(_0x5fa7('0x1'));var url=require(_0x5fa7('0x2'));var Mustache=require('mustache');var Redis=require(_0x5fa7('0x3'));var urlforward=require(_0x5fa7('0x4'));var integration=require(_0x5fa7('0x5'));var cmContact=require(_0x5fa7('0x6'));var script=require('./script');var config=require(_0x5fa7('0x7'));var logger=require(_0x5fa7('0x8'))(_0x5fa7('0x9'));var ami=require(_0x5fa7('0xa'));config[_0x5fa7('0xb')]=_['defaults'](config[_0x5fa7('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0x5fa7('0xc'))(new Redis(config[_0x5fa7('0xb')]));var operators={'equals':function(_0x2d5024,_0x27492d){return _0x2d5024==_0x27492d;},'not_equals':function(_0x29b8d0,_0x513d5f){return _0x29b8d0!=_0x513d5f;}};var barAndWebActions=['popup',_0x5fa7('0x2'),'winapp'];function Trigger(_0x2bdb27){this['triggers']=_0x2bdb27[_0x5fa7('0xd')];this['agents']=_0x2bdb27[_0x5fa7('0xe')];this[_0x5fa7('0xf')]=_0x2bdb27['voiceQueues'];this[_0x5fa7('0x10')]=_0x2bdb27[_0x5fa7('0x10')];this[_0x5fa7('0x11')]=_0x2bdb27[_0x5fa7('0x11')];this[_0x5fa7('0x12')]=_0x2bdb27[_0x5fa7('0x12')];this[_0x5fa7('0x13')]=_0x2bdb27[_0x5fa7('0x13')];this[_0x5fa7('0x14')]=_0x2bdb27[_0x5fa7('0x14')];this[_0x5fa7('0x15')]=_0x2bdb27[_0x5fa7('0x15')];this['zohoAccounts']=_0x2bdb27['zohoAccounts'];this[_0x5fa7('0x16')]=_0x2bdb27[_0x5fa7('0x16')];this[_0x5fa7('0x17')]=_0x2bdb27[_0x5fa7('0x17')];this['servicenowAccounts']=_0x2bdb27['servicenowAccounts'];this[_0x5fa7('0x18')]=_0x2bdb27[_0x5fa7('0x18')];this[_0x5fa7('0x19')]=_0x2bdb27['freshsalesAccounts'];this[_0x5fa7('0x1a')]={'zendesk':this[_0x5fa7('0x12')],'salesforce':this[_0x5fa7('0x14')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x5fa7('0x15')],'zoho':this[_0x5fa7('0x1b')],'desk':this[_0x5fa7('0x16')],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x5fa7('0x19')],'servicenow':this[_0x5fa7('0x1c')]};ami['on'](_0x5fa7('0x1d'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x20'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x21'),this['syncCustomEvent']['bind'](this));ami['on'](_0x5fa7('0x22'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on']('custom:agentnoanswer',this[_0x5fa7('0x1e')]['bind'](this));ami['on'](_0x5fa7('0x23'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on']('custom:agentcongestion',this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x24'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on']('custom:amd',this[_0x5fa7('0x1e')]['bind'](this));ami['on'](_0x5fa7('0x25'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x26'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x27'),this[_0x5fa7('0x28')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x29'),this[_0x5fa7('0x28')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x2a'),this['syncAgentDial'][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x2b'),this['syncCustomEvent'][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x2c'),this['syncCustomEvent'][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x2d'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x2e'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on'](_0x5fa7('0x2f'),this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));ami['on']('custom:acceptmessage',this['syncCustomEvent']['bind'](this));ami['on'](_0x5fa7('0x30'),this['syncCustomEvent']['bind'](this));ami['on']('custom:offlineMessage',this[_0x5fa7('0x1e')][_0x5fa7('0x1f')](this));}Trigger[_0x5fa7('0x31')]['emit']=function(_0x2ebbf8,_0x3aec54,_0x4381c8){logger[_0x5fa7('0x32')](_0x2ebbf8,_0x3aec54,JSON['stringify'](_0x4381c8));io['to'](_0x2ebbf8)[_0x5fa7('0x33')](_0x3aec54,_0x4381c8);};Trigger[_0x5fa7('0x31')][_0x5fa7('0x1e')]=function(_0x4c034b){var _0x1d2689=_[_0x5fa7('0x34')](_0x4c034b);if(typeof _0x1d2689[_0x5fa7('0x35')]==='undefined'){_0x1d2689[_0x5fa7('0x35')]=_0x5fa7('0x36');}logger[_0x5fa7('0x37')](_0x5fa7('0x1e'),util[_0x5fa7('0x38')](_0x1d2689,{'showHidden':!![],'depth':null}));this['checkTriggers'](_0x1d2689);};Trigger[_0x5fa7('0x31')][_0x5fa7('0x28')]=function(_0x8134c){if(this[_0x5fa7('0xe')][_0x8134c[_0x5fa7('0x39')]]){this['syncCustomEvent'](_0x8134c);}};Trigger[_0x5fa7('0x31')][_0x5fa7('0x3a')]=function(_0x31763d){var _0x27df39;for(var _0x50cb70 in this[_0x5fa7('0xd')]){if(this[_0x5fa7('0xd')][_0x5fa7('0x3b')](_0x50cb70)){if(this[_0x5fa7('0xd')][_0x50cb70][_0x5fa7('0x3c')]){_0x27df39=this[_0x5fa7('0x3d')](this[_0x5fa7('0xd')][_0x50cb70],_0x31763d);if(_0x27df39){_[_0x5fa7('0x3e')](_0x31763d,_0x31763d['variables']);for(var _0x4c5e67=0x0,_0x18e074,_0x6f7157,_0x2ff7ba;_0x4c5e67<this['triggers'][_0x50cb70][_0x5fa7('0x3f')][_0x5fa7('0x40')];_0x4c5e67+=0x1){_0x18e074=this[_0x5fa7('0xd')][_0x50cb70][_0x5fa7('0x3f')][_0x4c5e67];if(this[_0x5fa7('0xe')][_0x31763d['interface']]){switch(_0x18e074[_0x5fa7('0x41')][_0x5fa7('0x42')]()){case _0x5fa7('0x43'):break;case _0x5fa7('0x44'):case _0x5fa7('0x45'):var _0x4e24f6={};switch(barAndWebActions[_0x18e074[_0x5fa7('0x46')]]){case'popup':_0x4e24f6['TemplateId']=_0x18e074[_0x5fa7('0x47')];_0x4e24f6[_0x5fa7('0x48')]=this[_0x5fa7('0x10')][_0x18e074[_0x5fa7('0x47')]]?Mustache[_0x5fa7('0x49')](this['templates'][_0x18e074[_0x5fa7('0x47')]][_0x5fa7('0x48')],_0x31763d):_0x5fa7('0x4a');break;case'url':_0x4e24f6[_0x5fa7('0x4b')]=this['buildUri'](_0x18e074[_0x5fa7('0x47')],_0x31763d,_[_0x5fa7('0x4c')](_0x18e074[_0x5fa7('0x4d')])?!![]:parseInt(_0x18e074['data3'],0xa));if(_['isNil'](_0x18e074[_0x5fa7('0x4e')])){_0x4e24f6[_0x5fa7('0x4f')]='0';}else{_0x4e24f6[_0x5fa7('0x50')]=_0x18e074['data4'];_0x4e24f6[_0x5fa7('0x51')]=_['isNil'](_0x18e074[_0x5fa7('0x52')])?'800':_0x18e074[_0x5fa7('0x52')];_0x4e24f6[_0x5fa7('0x53')]=_[_0x5fa7('0x4c')](_0x18e074['data6'])?_0x5fa7('0x54'):_0x18e074[_0x5fa7('0x55')];}break;case _0x5fa7('0x56'):_0x4e24f6[_0x5fa7('0x57')]=_0x18e074['data2']?Mustache[_0x5fa7('0x49')](_0x18e074[_0x5fa7('0x47')],_0x31763d):'';_0x4e24f6[_0x5fa7('0x58')]=_0x18e074['data3']?Mustache['render'](_0x18e074[_0x5fa7('0x4d')],_0x31763d):'';break;}this[_0x5fa7('0x33')](util[_0x5fa7('0x59')](_0x5fa7('0x5a'),this[_0x5fa7('0xe')][_0x31763d[_0x5fa7('0x39')]]['name']),util[_0x5fa7('0x59')](_0x5fa7('0x5b'),_0x18e074[_0x5fa7('0x41')]['toLowerCase'](),barAndWebActions[_0x18e074['data1']]),_[_0x5fa7('0x3e')](_0x4e24f6,_0x31763d));break;case _0x5fa7('0x5c'):this[_0x5fa7('0x33')](util[_0x5fa7('0x59')](_0x5fa7('0x5a'),this[_0x5fa7('0xe')][_0x31763d['interface']]['name']),util[_0x5fa7('0x59')](_0x5fa7('0x5d'),_0x18e074[_0x5fa7('0x41')]['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x18e074[_0x5fa7('0x46')],0xa)},_0x31763d));break;default:this[_0x5fa7('0x33')](util[_0x5fa7('0x59')](_0x5fa7('0x5a'),this[_0x5fa7('0xe')][_0x31763d[_0x5fa7('0x39')]][_0x5fa7('0x5e')]),util['format'](_0x5fa7('0x5d'),_0x18e074[_0x5fa7('0x41')][_0x5fa7('0x42')]()),_[_0x5fa7('0x3e')]({},_0x18e074,_0x31763d));}}switch(_0x18e074[_0x5fa7('0x41')]['toLowerCase']()){case'contactmanager':cmContact['exec'](this[_0x5fa7('0xe')][_0x31763d[_0x5fa7('0x39')]],this['triggers'][_0x50cb70],_0x18e074,_0x31763d);break;case _0x5fa7('0x5f'):integration[_0x5fa7('0x60')](_0x18e074,_0x31763d,this[_0x5fa7('0x1a')],this[_0x5fa7('0xe')][_0x31763d[_0x5fa7('0x39')]],this['voiceQueues'][_0x31763d[_0x5fa7('0x61')]],this[_0x5fa7('0x11')][_0x31763d[_0x5fa7('0x62')]]);break;case _0x5fa7('0x63'):urlforward[_0x5fa7('0x60')](_0x18e074,_0x31763d);break;case _0x5fa7('0x64'):script[_0x5fa7('0x60')](_0x18e074,_0x31763d);break;}}}}}}};Trigger[_0x5fa7('0x31')][_0x5fa7('0x65')]=function(_0x5892c8,_0x42b583,_0x16ab7a){var _0x2435b3=url[_0x5fa7('0x66')](Mustache[_0x5fa7('0x49')](_0x5892c8,_0x42b583),!![]);if(_0x16ab7a){_[_0x5fa7('0x3e')](_0x2435b3['query'],_0x42b583);}delete _0x2435b3['search'];var _0xfef44d=url['format'](_0x2435b3);_0xfef44d=_0xfef44d[_0x5fa7('0x67')](/\/\?/g,'?');return _0xfef44d;};Trigger[_0x5fa7('0x31')][_0x5fa7('0x3d')]=function(_0x106379,_0x28be3d){var _0x129a5e=!![];var _0x3199df=!![];var _0x1ae21a=![];if(_0x106379['channel']===_0x28be3d[_0x5fa7('0x35')]){_0x1ae21a=!![];}if(_0x106379[_0x5fa7('0x68')][_0x5fa7('0x40')]){_0x129a5e=_[_0x5fa7('0x69')](_0x106379[_0x5fa7('0x68')],this[_0x5fa7('0x6a')](_0x28be3d,_0x106379[_0x5fa7('0x6b')]));}if(_0x106379[_0x5fa7('0x6c')][_0x5fa7('0x40')]){_0x3199df=_[_0x5fa7('0x6d')](_0x106379[_0x5fa7('0x6c')],this[_0x5fa7('0x6a')](_0x28be3d,_0x106379[_0x5fa7('0x6b')]));}var _0xcbb72b=_0x1ae21a&&_0x129a5e&&_0x3199df;logger[_0x5fa7('0x37')](_0x5fa7('0x6e'),util[_0x5fa7('0x38')](_0x106379,{'showHidden':!![],'depth':null}),_0x5fa7('0x6f'),util[_0x5fa7('0x38')](_0x28be3d,{'showHidden':!![],'depth':null}),_0x1ae21a,_0x129a5e,_0x3199df);return _0xcbb72b;};Trigger[_0x5fa7('0x31')]['checkConditions']=function(_0x4d6f7e,_0x2b6e82){return function(_0x109c67){switch(_0x109c67[_0x5fa7('0x70')]){case'account':if(_0x4d6f7e['channel']===_0x2b6e82){if(_0x2b6e82===_0x5fa7('0x71')){return _0x4d6f7e[_0x5fa7('0x72')]?operators[_0x109c67[_0x5fa7('0x73')]](Number(_0x109c67['value']),_0x4d6f7e[_0x5fa7('0x72')]):![];}else{return _0x4d6f7e[_['upperFirst'](_0x2b6e82)+'AccountId']?operators[_0x109c67['operator']](Number(_0x109c67['value']),_0x4d6f7e[_[_0x5fa7('0x74')](_0x2b6e82)+_0x5fa7('0x75')]):![];}}break;case'interaction':case _0x5fa7('0x76'):if(_0x4d6f7e[_0x5fa7('0x6b')]===_0x2b6e82){return _0x4d6f7e[_0x5fa7('0x77')]?operators[_0x109c67[_0x5fa7('0x73')]](_0x109c67[_0x5fa7('0x78')],_0x4d6f7e[_0x5fa7('0x77')]):![];}break;case _0x5fa7('0x61'):return _0x4d6f7e[_0x5fa7('0x61')]?operators[_0x109c67[_0x5fa7('0x73')]](_0x109c67['value'],_0x4d6f7e[_0x5fa7('0x61')]):![];case'agent':return _0x4d6f7e[_0x5fa7('0x79')]?operators[_0x109c67['operator']](_0x109c67[_0x5fa7('0x78')],_0x4d6f7e[_0x5fa7('0x79')]):![];case _0x5fa7('0x7a'):return _0x4d6f7e[_0x5fa7('0x7a')]?operators[_0x109c67[_0x5fa7('0x73')]](_0x109c67[_0x5fa7('0x78')],_0x4d6f7e[_0x5fa7('0x7a')]):![];case _0x5fa7('0x62'):return _0x4d6f7e[_0x5fa7('0x62')]?operators[_0x109c67['operator']](_0x109c67[_0x5fa7('0x78')],_0x4d6f7e[_0x5fa7('0x62')]):![];case _0x5fa7('0x7b'):if(_0x109c67[_0x5fa7('0x78')]===_0x5fa7('0x7c'))_0x109c67[_0x5fa7('0x78')]=null;return typeof _0x4d6f7e[_0x5fa7('0x7d')]!==_0x5fa7('0x7e')?operators[_0x109c67['operator']](_0x109c67['value'],_0x4d6f7e[_0x5fa7('0x7d')]):![];case'offlineMessage':if(_0x4d6f7e['channel']===_0x2b6e82){return _0x109c67['value']===_0x5fa7('0x7f')&&_0x109c67['operator']===_0x5fa7('0x80')?!![]:![];}break;}return![];};};module[_0x5fa7('0x81')]=Trigger;