99cbc1f3096444e190d1a2d3bccd80f4cb9e4873
[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 _0xd0da=['checkTrigger','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','isNil','data3','data4','windowHeight','600','data6','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','jscripty','trigger:%s','integration','exec','routeId','script','buildUri','parse','query','search','channel','AllConditions','every','some','checkConditions','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','event','queue','agent','lastevent','mailSubstatus','null','undefined','substatus','offlineMessage','created','equals','exports','util','lodash','url','mustache','ioredis','./integration','./cmContact','./script','trigger','defaults','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','bind','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:acceptmessage','custom:offlineMessage','prototype','stringify','emit','clone','motionChannel','voice','checkTriggers','interface','hasOwnProperty','status'];(function(_0x4df97c,_0xc7d2f){var _0x1fd0c7=function(_0x2bbfd4){while(--_0x2bbfd4){_0x4df97c['push'](_0x4df97c['shift']());}};_0x1fd0c7(++_0xc7d2f);}(_0xd0da,0x1b1));var _0xad0d=function(_0xf7a9cf,_0x2cfa33){_0xf7a9cf=_0xf7a9cf-0x0;var _0x7fdc45=_0xd0da[_0xf7a9cf];return _0x7fdc45;};'use strict';var util=require(_0xad0d('0x0'));var _=require(_0xad0d('0x1'));var url=require(_0xad0d('0x2'));var Mustache=require(_0xad0d('0x3'));var Redis=require(_0xad0d('0x4'));var urlforward=require('./urlforward');var integration=require(_0xad0d('0x5'));var cmContact=require(_0xad0d('0x6'));var script=require(_0xad0d('0x7'));var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0xad0d('0x8'));var ami=require('../ami');config['redis']=_[_0xad0d('0x9')](config[_0xad0d('0xa')],{'host':_0xad0d('0xb'),'port':0x18eb});var io=require(_0xad0d('0xc'))(new Redis(config['redis']));var operators={'equals':function(_0x3ef616,_0x162095){return _0x3ef616==_0x162095;},'not_equals':function(_0x40e717,_0x2a7875){return _0x40e717!=_0x2a7875;}};var barAndWebActions=[_0xad0d('0xd'),_0xad0d('0x2'),_0xad0d('0xe')];function Trigger(_0x2b898f){this[_0xad0d('0xf')]=_0x2b898f[_0xad0d('0xf')];this[_0xad0d('0x10')]=_0x2b898f[_0xad0d('0x10')];this[_0xad0d('0x11')]=_0x2b898f['voiceQueues'];this[_0xad0d('0x12')]=_0x2b898f[_0xad0d('0x12')];this['voiceExtensions']=_0x2b898f[_0xad0d('0x13')];this[_0xad0d('0x14')]=_0x2b898f['zendeskAccounts'];this[_0xad0d('0x15')]=_0x2b898f[_0xad0d('0x15')];this['salesforceAccounts']=_0x2b898f[_0xad0d('0x16')];this[_0xad0d('0x17')]=_0x2b898f['sugarcrmAccounts'];this[_0xad0d('0x18')]=_0x2b898f['zohoAccounts'];this['deskAccounts']=_0x2b898f[_0xad0d('0x19')];this[_0xad0d('0x1a')]=_0x2b898f[_0xad0d('0x1a')];this['servicenowAccounts']=_0x2b898f[_0xad0d('0x1b')];this[_0xad0d('0x1c')]=_0x2b898f['dynamics365Accounts'];this[_0xad0d('0x1d')]=_0x2b898f['freshsalesAccounts'];this['accounts']={'zendesk':this[_0xad0d('0x14')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xad0d('0x15')],'sugarcrm':this[_0xad0d('0x17')],'zoho':this[_0xad0d('0x18')],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xad0d('0x1c')],'freshsales':this[_0xad0d('0x1d')],'servicenow':this[_0xad0d('0x1b')]};ami['on']('custom:agentcalled',this['syncCustomEvent'][_0xad0d('0x1e')](this));ami['on']('custom:agentconnect',this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x20'),this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x21'),this['syncCustomEvent'][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x22'),this['syncCustomEvent']['bind'](this));ami['on'](_0xad0d('0x23'),this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on']('custom:agentbusy',this[_0xad0d('0x1f')]['bind'](this));ami['on'](_0xad0d('0x24'),this[_0xad0d('0x1f')]['bind'](this));ami['on']('custom:agentreject',this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x25'),this['syncCustomEvent'][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x26'),this[_0xad0d('0x1f')]['bind'](this));ami['on'](_0xad0d('0x27'),this[_0xad0d('0x1f')]['bind'](this));ami['on'](_0xad0d('0x28'),this[_0xad0d('0x29')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x2a'),this[_0xad0d('0x29')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x2b'),this[_0xad0d('0x29')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x2c'),this[_0xad0d('0x1f')]['bind'](this));ami['on'](_0xad0d('0x2d'),this['syncCustomEvent'][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x2e'),this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on']('custom:incomingmessage',this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on']('custom:outgoingmessage',this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x2f'),this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on']('custom:rejectmessage',this[_0xad0d('0x1f')][_0xad0d('0x1e')](this));ami['on'](_0xad0d('0x30'),this[_0xad0d('0x1f')]['bind'](this));}Trigger[_0xad0d('0x31')]['emit']=function(_0xb52898,_0xf2b22d,_0xf762ac){logger['info'](_0xb52898,_0xf2b22d,JSON[_0xad0d('0x32')](_0xf762ac));io['to'](_0xb52898)[_0xad0d('0x33')](_0xf2b22d,_0xf762ac);};Trigger[_0xad0d('0x31')][_0xad0d('0x1f')]=function(_0x356aad){var _0x92391a=_[_0xad0d('0x34')](_0x356aad);if(typeof _0x92391a[_0xad0d('0x35')]==='undefined'){_0x92391a[_0xad0d('0x35')]=_0xad0d('0x36');}this[_0xad0d('0x37')](_0x92391a);};Trigger[_0xad0d('0x31')]['syncAgentDial']=function(_0x397294){if(this[_0xad0d('0x10')][_0x397294[_0xad0d('0x38')]]){this[_0xad0d('0x1f')](_0x397294);}};Trigger[_0xad0d('0x31')]['checkTriggers']=function(_0x51f042){var _0x1cefb0;for(var _0x4a19e1 in this[_0xad0d('0xf')]){if(this[_0xad0d('0xf')][_0xad0d('0x39')](_0x4a19e1)){if(this[_0xad0d('0xf')][_0x4a19e1][_0xad0d('0x3a')]){_0x1cefb0=this[_0xad0d('0x3b')](this[_0xad0d('0xf')][_0x4a19e1],_0x51f042);if(_0x1cefb0){_[_0xad0d('0x3c')](_0x51f042,_0x51f042[_0xad0d('0x3d')]);for(var _0x539d55=0x0,_0x469c13,_0x32e937,_0x13b83b;_0x539d55<this[_0xad0d('0xf')][_0x4a19e1][_0xad0d('0x3e')][_0xad0d('0x3f')];_0x539d55+=0x1){_0x469c13=this[_0xad0d('0xf')][_0x4a19e1][_0xad0d('0x3e')][_0x539d55];if(this[_0xad0d('0x10')][_0x51f042[_0xad0d('0x38')]]){switch(_0x469c13[_0xad0d('0x40')][_0xad0d('0x41')]()){case _0xad0d('0x42'):break;case _0xad0d('0x43'):case _0xad0d('0x44'):var _0x570c1e={};switch(barAndWebActions[_0x469c13[_0xad0d('0x45')]]){case _0xad0d('0xd'):_0x570c1e[_0xad0d('0x46')]=_0x469c13[_0xad0d('0x47')];_0x570c1e[_0xad0d('0x48')]=this[_0xad0d('0x12')][_0x469c13[_0xad0d('0x47')]]?Mustache[_0xad0d('0x49')](this[_0xad0d('0x12')][_0x469c13[_0xad0d('0x47')]]['html'],_0x51f042):_0xad0d('0x4a');break;case _0xad0d('0x2'):_0x570c1e[_0xad0d('0x4b')]=this['buildUri'](_0x469c13[_0xad0d('0x47')],_0x51f042,_[_0xad0d('0x4c')](_0x469c13['data3'])?!![]:parseInt(_0x469c13[_0xad0d('0x4d')],0xa));if(_['isNil'](_0x469c13[_0xad0d('0x4e')])){_0x570c1e['location']='0';}else{_0x570c1e['uriLocation']=_0x469c13['data4'];_0x570c1e['windowWidth']=_[_0xad0d('0x4c')](_0x469c13['data5'])?'800':_0x469c13['data5'];_0x570c1e[_0xad0d('0x4f')]=_['isNil'](_0x469c13['data6'])?_0xad0d('0x50'):_0x469c13[_0xad0d('0x51')];}break;case'winapp':_0x570c1e[_0xad0d('0x52')]=_0x469c13[_0xad0d('0x47')]?Mustache['render'](_0x469c13[_0xad0d('0x47')],_0x51f042):'';_0x570c1e[_0xad0d('0x53')]=_0x469c13[_0xad0d('0x4d')]?Mustache[_0xad0d('0x49')](_0x469c13[_0xad0d('0x4d')],_0x51f042):'';break;}this['emit'](util[_0xad0d('0x54')](_0xad0d('0x55'),this['agents'][_0x51f042['interface']][_0xad0d('0x56')]),util[_0xad0d('0x54')](_0xad0d('0x57'),_0x469c13[_0xad0d('0x40')]['toLowerCase'](),barAndWebActions[_0x469c13[_0xad0d('0x45')]]),_[_0xad0d('0x3c')](_0x570c1e,_0x51f042));break;case _0xad0d('0x58'):this['emit'](util[_0xad0d('0x54')](_0xad0d('0x55'),this[_0xad0d('0x10')][_0x51f042[_0xad0d('0x38')]][_0xad0d('0x56')]),util[_0xad0d('0x54')](_0xad0d('0x59'),_0x469c13[_0xad0d('0x40')]['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x469c13[_0xad0d('0x45')],0xa)},_0x51f042));break;default:this[_0xad0d('0x33')](util[_0xad0d('0x54')](_0xad0d('0x55'),this[_0xad0d('0x10')][_0x51f042[_0xad0d('0x38')]][_0xad0d('0x56')]),util[_0xad0d('0x54')]('trigger:%s',_0x469c13[_0xad0d('0x40')]['toLowerCase']()),_[_0xad0d('0x3c')]({},_0x469c13,_0x51f042));}}switch(_0x469c13[_0xad0d('0x40')][_0xad0d('0x41')]()){case _0xad0d('0x42'):cmContact['exec'](this[_0xad0d('0x10')][_0x51f042[_0xad0d('0x38')]],this['triggers'][_0x4a19e1],_0x469c13,_0x51f042);break;case _0xad0d('0x5a'):integration[_0xad0d('0x5b')](_0x469c13,_0x51f042,this['accounts'],this[_0xad0d('0x10')][_0x51f042[_0xad0d('0x38')]],this[_0xad0d('0x11')][_0x51f042['queue']],this[_0xad0d('0x13')][_0x51f042[_0xad0d('0x5c')]]);break;case'urlforward':urlforward[_0xad0d('0x5b')](_0x469c13,_0x51f042);break;case _0xad0d('0x5d'):script['exec'](_0x469c13,_0x51f042);break;}}}}}}};Trigger[_0xad0d('0x31')][_0xad0d('0x5e')]=function(_0x3335fe,_0x44e80c,_0x63ad39){var _0x2daa9d=url[_0xad0d('0x5f')](Mustache[_0xad0d('0x49')](_0x3335fe,_0x44e80c),!![]);if(_0x63ad39){_[_0xad0d('0x3c')](_0x2daa9d[_0xad0d('0x60')],_0x44e80c);}delete _0x2daa9d[_0xad0d('0x61')];var _0x4c20ff=url[_0xad0d('0x54')](_0x2daa9d);_0x4c20ff=_0x4c20ff['replace'](/\/\?/g,'?');return _0x4c20ff;};Trigger[_0xad0d('0x31')]['checkTrigger']=function(_0x503037,_0x5ef2e2){var _0x125129=!![];var _0x3a7268=!![];var _0x39351e=![];if(_0x503037[_0xad0d('0x62')]===_0x5ef2e2[_0xad0d('0x35')]){_0x39351e=!![];}if(_0x503037[_0xad0d('0x63')][_0xad0d('0x3f')]){_0x125129=_[_0xad0d('0x64')](_0x503037['AllConditions'],this['checkConditions'](_0x5ef2e2,_0x503037[_0xad0d('0x62')]));}if(_0x503037['AnyConditions']['length']){_0x3a7268=_[_0xad0d('0x65')](_0x503037['AnyConditions'],this[_0xad0d('0x66')](_0x5ef2e2,_0x503037[_0xad0d('0x62')]));}return _0x39351e&&_0x125129&&_0x3a7268;};Trigger['prototype'][_0xad0d('0x66')]=function(_0x2e8686,_0x2f1f18){return function(_0x3553d7){switch(_0x3553d7[_0xad0d('0x67')]){case _0xad0d('0x68'):if(_0x2e8686[_0xad0d('0x62')]===_0x2f1f18){if(_0x2f1f18===_0xad0d('0x69')){return _0x2e8686[_0xad0d('0x6a')]?operators[_0x3553d7[_0xad0d('0x6b')]](Number(_0x3553d7[_0xad0d('0x6c')]),_0x2e8686[_0xad0d('0x6a')]):![];}else{return _0x2e8686[_[_0xad0d('0x6d')](_0x2f1f18)+_0xad0d('0x6e')]?operators[_0x3553d7['operator']](Number(_0x3553d7[_0xad0d('0x6c')]),_0x2e8686[_[_0xad0d('0x6d')](_0x2f1f18)+_0xad0d('0x6e')]):![];}}break;case'interaction':case'message':if(_0x2e8686[_0xad0d('0x62')]===_0x2f1f18){return _0x2e8686['event']?operators[_0x3553d7[_0xad0d('0x6b')]](_0x3553d7[_0xad0d('0x6c')],_0x2e8686[_0xad0d('0x6f')]):![];}break;case _0xad0d('0x70'):return _0x2e8686[_0xad0d('0x70')]?operators[_0x3553d7[_0xad0d('0x6b')]](_0x3553d7['value'],_0x2e8686['queue']):![];case _0xad0d('0x71'):return _0x2e8686['membername']?operators[_0x3553d7[_0xad0d('0x6b')]](_0x3553d7['value'],_0x2e8686['membername']):![];case _0xad0d('0x72'):return _0x2e8686[_0xad0d('0x72')]?operators[_0x3553d7[_0xad0d('0x6b')]](_0x3553d7[_0xad0d('0x6c')],_0x2e8686[_0xad0d('0x72')]):![];case'routeId':return _0x2e8686[_0xad0d('0x5c')]?operators[_0x3553d7[_0xad0d('0x6b')]](_0x3553d7[_0xad0d('0x6c')],_0x2e8686['routeId']):![];case _0xad0d('0x73'):if(_0x3553d7['value']===_0xad0d('0x74'))_0x3553d7[_0xad0d('0x6c')]=null;return typeof _0x2e8686['substatus']!==_0xad0d('0x75')?operators[_0x3553d7[_0xad0d('0x6b')]](_0x3553d7[_0xad0d('0x6c')],_0x2e8686[_0xad0d('0x76')]):![];case _0xad0d('0x77'):if(_0x2e8686[_0xad0d('0x62')]===_0x2f1f18){return _0x3553d7['value']===_0xad0d('0x78')&&_0x3553d7['operator']===_0xad0d('0x79')?!![]:![];}break;}return![];};};module[_0xad0d('0x7a')]=Trigger;