eaa6f7b99373c0548993f43dbbfa2570351433b6
[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 _0x14a3=['freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','undefined','voice','debug','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','toLowerCase','contactmanager','motionbar','data1','render','data2','html','uri','buildUri','isNil','data4','uriLocation','data5','800','windowHeight','data6','600','winApplication','data3','user:%s','name','format','trigger:%s:%s','jscripty','trigger:%s','exec','integration','queue','routeId','script','query','search','replace','channel','every','AnyConditions','length','some','checkConditions','inspect','field','account','ChatWebsiteId','value','upperFirst','operator','AccountId','event','membername','lastevent','mailSubstatus','null','equals','util','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts'];(function(_0x259adf,_0x2716bc){var _0x16b5a2=function(_0x5c8a6e){while(--_0x5c8a6e){_0x259adf['push'](_0x259adf['shift']());}};_0x16b5a2(++_0x2716bc);}(_0x14a3,0x161));var _0x314a=function(_0x26b308,_0x397dfc){_0x26b308=_0x26b308-0x0;var _0x59478d=_0x14a3[_0x26b308];return _0x59478d;};'use strict';var util=require(_0x314a('0x0'));var _=require(_0x314a('0x1'));var url=require(_0x314a('0x2'));var Mustache=require(_0x314a('0x3'));var Redis=require(_0x314a('0x4'));var urlforward=require(_0x314a('0x5'));var integration=require(_0x314a('0x6'));var cmContact=require(_0x314a('0x7'));var script=require(_0x314a('0x8'));var config=require(_0x314a('0x9'));var logger=require(_0x314a('0xa'))(_0x314a('0xb'));var ami=require(_0x314a('0xc'));config[_0x314a('0xd')]=_[_0x314a('0xe')](config['redis'],{'host':_0x314a('0xf'),'port':0x18eb});var io=require(_0x314a('0x10'))(new Redis(config['redis']));var operators={'equals':function(_0x4f9780,_0x393645){return _0x4f9780==_0x393645;},'not_equals':function(_0x1b6599,_0x459079){return _0x1b6599!=_0x459079;}};var barAndWebActions=[_0x314a('0x11'),_0x314a('0x2'),_0x314a('0x12')];function Trigger(_0x480186){this[_0x314a('0x13')]=_0x480186[_0x314a('0x13')];this['agents']=_0x480186[_0x314a('0x14')];this[_0x314a('0x15')]=_0x480186[_0x314a('0x15')];this['templates']=_0x480186[_0x314a('0x16')];this[_0x314a('0x17')]=_0x480186[_0x314a('0x17')];this[_0x314a('0x18')]=_0x480186[_0x314a('0x18')];this[_0x314a('0x19')]=_0x480186[_0x314a('0x19')];this[_0x314a('0x1a')]=_0x480186['salesforceAccounts'];this[_0x314a('0x1b')]=_0x480186['sugarcrmAccounts'];this['zohoAccounts']=_0x480186[_0x314a('0x1c')];this[_0x314a('0x1d')]=_0x480186[_0x314a('0x1d')];this['vtigerAccounts']=_0x480186[_0x314a('0x1e')];this[_0x314a('0x1f')]=_0x480186[_0x314a('0x1f')];this[_0x314a('0x20')]=_0x480186[_0x314a('0x20')];this[_0x314a('0x21')]=_0x480186[_0x314a('0x21')];this[_0x314a('0x22')]={'zendesk':this[_0x314a('0x18')],'salesforce':this[_0x314a('0x1a')],'freshdesk':this[_0x314a('0x19')],'sugarcrm':this[_0x314a('0x1b')],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x314a('0x1e')],'dynamics365':this[_0x314a('0x20')],'freshsales':this[_0x314a('0x21')],'servicenow':this[_0x314a('0x1f')]};ami['on'](_0x314a('0x23'),this[_0x314a('0x24')]['bind'](this));ami['on'](_0x314a('0x25'),this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on'](_0x314a('0x27'),this['syncCustomEvent'][_0x314a('0x26')](this));ami['on'](_0x314a('0x28'),this[_0x314a('0x24')]['bind'](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent'][_0x314a('0x26')](this));ami['on'](_0x314a('0x29'),this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on'](_0x314a('0x2a'),this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on'](_0x314a('0x2b'),this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on'](_0x314a('0x2c'),this['syncCustomEvent'][_0x314a('0x26')](this));ami['on'](_0x314a('0x2d'),this['syncCustomEvent']['bind'](this));ami['on'](_0x314a('0x2e'),this[_0x314a('0x24')]['bind'](this));ami['on']('custom:timeout',this[_0x314a('0x24')]['bind'](this));ami['on'](_0x314a('0x2f'),this[_0x314a('0x30')][_0x314a('0x26')](this));ami['on'](_0x314a('0x31'),this[_0x314a('0x30')][_0x314a('0x26')](this));ami['on'](_0x314a('0x32'),this['syncAgentDial'][_0x314a('0x26')](this));ami['on'](_0x314a('0x33'),this['syncCustomEvent']['bind'](this));ami['on']('custom:closedinteraction',this[_0x314a('0x24')]['bind'](this));ami['on'](_0x314a('0x34'),this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on'](_0x314a('0x35'),this[_0x314a('0x24')]['bind'](this));ami['on']('custom:outgoingmessage',this[_0x314a('0x24')]['bind'](this));ami['on'](_0x314a('0x36'),this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on']('custom:rejectmessage',this[_0x314a('0x24')][_0x314a('0x26')](this));ami['on'](_0x314a('0x37'),this[_0x314a('0x24')][_0x314a('0x26')](this));}Trigger[_0x314a('0x38')][_0x314a('0x39')]=function(_0x5b7bca,_0x3343db,_0x57fa20){logger[_0x314a('0x3a')](_0x5b7bca,_0x3343db,JSON[_0x314a('0x3b')](_0x57fa20));io['to'](_0x5b7bca)[_0x314a('0x39')](_0x3343db,_0x57fa20);};Trigger['prototype'][_0x314a('0x24')]=function(_0x4a2de3){var _0x21e536=_[_0x314a('0x3c')](_0x4a2de3);if(typeof _0x21e536['motionChannel']===_0x314a('0x3d')){_0x21e536['motionChannel']=_0x314a('0x3e');}logger[_0x314a('0x3f')](_0x314a('0x24'),util['inspect'](_0x21e536,{'showHidden':!![],'depth':null}));this[_0x314a('0x40')](_0x21e536);};Trigger[_0x314a('0x38')][_0x314a('0x30')]=function(_0x5b3f0c){if(this['agents'][_0x5b3f0c[_0x314a('0x41')]]){this['syncCustomEvent'](_0x5b3f0c);}};Trigger[_0x314a('0x38')][_0x314a('0x40')]=function(_0x3ae11){var _0x16da02;for(var _0x6f8bb3 in this['triggers']){if(this[_0x314a('0x13')][_0x314a('0x42')](_0x6f8bb3)){if(this[_0x314a('0x13')][_0x6f8bb3][_0x314a('0x43')]){_0x16da02=this[_0x314a('0x44')](this[_0x314a('0x13')][_0x6f8bb3],_0x3ae11);if(_0x16da02){_[_0x314a('0x45')](_0x3ae11,_0x3ae11[_0x314a('0x46')]);for(var _0xcdfd29=0x0,_0xa77bcf,_0x155b88,_0x3e6ced;_0xcdfd29<this[_0x314a('0x13')][_0x6f8bb3][_0x314a('0x47')]['length'];_0xcdfd29+=0x1){_0xa77bcf=this[_0x314a('0x13')][_0x6f8bb3][_0x314a('0x47')][_0xcdfd29];if(this[_0x314a('0x14')][_0x3ae11[_0x314a('0x41')]]){switch(_0xa77bcf[_0x314a('0x48')][_0x314a('0x49')]()){case _0x314a('0x4a'):break;case _0x314a('0x4b'):case'browser':var _0x3d9be9={};switch(barAndWebActions[_0xa77bcf[_0x314a('0x4c')]]){case _0x314a('0x11'):_0x3d9be9['TemplateId']=_0xa77bcf['data2'];_0x3d9be9['html']=this[_0x314a('0x16')][_0xa77bcf['data2']]?Mustache[_0x314a('0x4d')](this[_0x314a('0x16')][_0xa77bcf[_0x314a('0x4e')]][_0x314a('0x4f')],_0x3ae11):'template\x20not\x20found';break;case'url':_0x3d9be9[_0x314a('0x50')]=this[_0x314a('0x51')](_0xa77bcf['data2'],_0x3ae11,_[_0x314a('0x52')](_0xa77bcf['data3'])?!![]:parseInt(_0xa77bcf['data3'],0xa));if(_[_0x314a('0x52')](_0xa77bcf[_0x314a('0x53')])){_0x3d9be9['location']='0';}else{_0x3d9be9[_0x314a('0x54')]=_0xa77bcf[_0x314a('0x53')];_0x3d9be9['windowWidth']=_[_0x314a('0x52')](_0xa77bcf[_0x314a('0x55')])?_0x314a('0x56'):_0xa77bcf[_0x314a('0x55')];_0x3d9be9[_0x314a('0x57')]=_['isNil'](_0xa77bcf[_0x314a('0x58')])?_0x314a('0x59'):_0xa77bcf[_0x314a('0x58')];}break;case _0x314a('0x12'):_0x3d9be9[_0x314a('0x5a')]=_0xa77bcf[_0x314a('0x4e')]?Mustache[_0x314a('0x4d')](_0xa77bcf['data2'],_0x3ae11):'';_0x3d9be9['winArguments']=_0xa77bcf[_0x314a('0x5b')]?Mustache[_0x314a('0x4d')](_0xa77bcf[_0x314a('0x5b')],_0x3ae11):'';break;}this['emit'](util['format'](_0x314a('0x5c'),this[_0x314a('0x14')][_0x3ae11['interface']][_0x314a('0x5d')]),util[_0x314a('0x5e')](_0x314a('0x5f'),_0xa77bcf[_0x314a('0x48')][_0x314a('0x49')](),barAndWebActions[_0xa77bcf[_0x314a('0x4c')]]),_[_0x314a('0x45')](_0x3d9be9,_0x3ae11));break;case _0x314a('0x60'):this['emit'](util['format'](_0x314a('0x5c'),this['agents'][_0x3ae11[_0x314a('0x41')]]['name']),util[_0x314a('0x5e')]('trigger:%s',_0xa77bcf['action'][_0x314a('0x49')]()),_[_0x314a('0x45')]({'ProjectId':parseInt(_0xa77bcf[_0x314a('0x4c')],0xa)},_0x3ae11));break;default:this['emit'](util[_0x314a('0x5e')]('user:%s',this[_0x314a('0x14')][_0x3ae11['interface']][_0x314a('0x5d')]),util[_0x314a('0x5e')](_0x314a('0x61'),_0xa77bcf['action'][_0x314a('0x49')]()),_[_0x314a('0x45')]({},_0xa77bcf,_0x3ae11));}}switch(_0xa77bcf[_0x314a('0x48')][_0x314a('0x49')]()){case _0x314a('0x4a'):cmContact[_0x314a('0x62')](this[_0x314a('0x14')][_0x3ae11[_0x314a('0x41')]],this[_0x314a('0x13')][_0x6f8bb3],_0xa77bcf,_0x3ae11);break;case _0x314a('0x63'):integration[_0x314a('0x62')](_0xa77bcf,_0x3ae11,this['accounts'],this['agents'][_0x3ae11['interface']],this[_0x314a('0x15')][_0x3ae11[_0x314a('0x64')]],this['voiceExtensions'][_0x3ae11[_0x314a('0x65')]]);break;case'urlforward':urlforward[_0x314a('0x62')](_0xa77bcf,_0x3ae11);break;case _0x314a('0x66'):script[_0x314a('0x62')](_0xa77bcf,_0x3ae11);break;}}}}}}};Trigger[_0x314a('0x38')][_0x314a('0x51')]=function(_0x49c608,_0x3fff44,_0x4ea1b0){var _0x595c4c=url['parse'](Mustache[_0x314a('0x4d')](_0x49c608,_0x3fff44),!![]);if(_0x4ea1b0){_['merge'](_0x595c4c[_0x314a('0x67')],_0x3fff44);}delete _0x595c4c[_0x314a('0x68')];var _0x384495=url['format'](_0x595c4c);_0x384495=_0x384495[_0x314a('0x69')](/\/\?/g,'?');return _0x384495;};Trigger[_0x314a('0x38')][_0x314a('0x44')]=function(_0x31446a,_0x3b3894){var _0x3f3de1=!![];var _0x22ef0f=!![];var _0x118cb8=![];if(_0x31446a[_0x314a('0x6a')]===_0x3b3894['motionChannel']){_0x118cb8=!![];}if(_0x31446a['AllConditions']['length']){_0x3f3de1=_[_0x314a('0x6b')](_0x31446a['AllConditions'],this['checkConditions'](_0x3b3894,_0x31446a['channel']));}if(_0x31446a[_0x314a('0x6c')][_0x314a('0x6d')]){_0x22ef0f=_[_0x314a('0x6e')](_0x31446a[_0x314a('0x6c')],this[_0x314a('0x6f')](_0x3b3894,_0x31446a['channel']));}var _0x1bc7dd=_0x118cb8&&_0x3f3de1&&_0x22ef0f;logger[_0x314a('0x3f')]('checkTrigger:\x20trigger',util[_0x314a('0x70')](_0x31446a,{'showHidden':!![],'depth':null}),'evt',util[_0x314a('0x70')](_0x3b3894,{'showHidden':!![],'depth':null}),_0x118cb8,_0x3f3de1,_0x22ef0f);return _0x1bc7dd;};Trigger['prototype'][_0x314a('0x6f')]=function(_0x3a510f,_0x4c94e1){return function(_0x4caffd){switch(_0x4caffd[_0x314a('0x71')]){case _0x314a('0x72'):if(_0x3a510f['channel']===_0x4c94e1){if(_0x4c94e1==='chat'){return _0x3a510f[_0x314a('0x73')]?operators[_0x4caffd['operator']](Number(_0x4caffd[_0x314a('0x74')]),_0x3a510f[_0x314a('0x73')]):![];}else{return _0x3a510f[_[_0x314a('0x75')](_0x4c94e1)+'AccountId']?operators[_0x4caffd[_0x314a('0x76')]](Number(_0x4caffd[_0x314a('0x74')]),_0x3a510f[_[_0x314a('0x75')](_0x4c94e1)+_0x314a('0x77')]):![];}}break;case'interaction':case'message':if(_0x3a510f['channel']===_0x4c94e1){return _0x3a510f[_0x314a('0x78')]?operators[_0x4caffd[_0x314a('0x76')]](_0x4caffd['value'],_0x3a510f['event']):![];}break;case'queue':return _0x3a510f['queue']?operators[_0x4caffd[_0x314a('0x76')]](_0x4caffd[_0x314a('0x74')],_0x3a510f[_0x314a('0x64')]):![];case'agent':return _0x3a510f[_0x314a('0x79')]?operators[_0x4caffd['operator']](_0x4caffd[_0x314a('0x74')],_0x3a510f[_0x314a('0x79')]):![];case _0x314a('0x7a'):return _0x3a510f[_0x314a('0x7a')]?operators[_0x4caffd[_0x314a('0x76')]](_0x4caffd[_0x314a('0x74')],_0x3a510f[_0x314a('0x7a')]):![];case'routeId':return _0x3a510f[_0x314a('0x65')]?operators[_0x4caffd[_0x314a('0x76')]](_0x4caffd['value'],_0x3a510f[_0x314a('0x65')]):![];case _0x314a('0x7b'):if(_0x4caffd[_0x314a('0x74')]===_0x314a('0x7c'))_0x4caffd[_0x314a('0x74')]=null;return typeof _0x3a510f['substatus']!==_0x314a('0x3d')?operators[_0x4caffd[_0x314a('0x76')]](_0x4caffd['value'],_0x3a510f['substatus']):![];case'offlineMessage':if(_0x3a510f[_0x314a('0x6a')]===_0x4c94e1){return _0x4caffd[_0x314a('0x74')]==='created'&&_0x4caffd['operator']===_0x314a('0x7d')?!![]:![];}break;}return![];};};module['exports']=Trigger;