Built motion from commit b5996064.|2.6.21
[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 _0xc7fd=['templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:amd','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','motionChannel','undefined','voice','debug','inspect','checkTriggers','interface','status','checkTrigger','merge','variables','Actions','length','action','toLowerCase','contactmanager','browser','data1','TemplateId','data2','html','url','uri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','render','winArguments','user:%s','name','format','jscripty','trigger:%s','exec','queue','routeId','urlforward','script','query','search','channel','AllConditions','every','checkConditions','some','checkTrigger:\x20trigger','evt','field','account','chat','ChatWebsiteId','value','upperFirst','AccountId','operator','interaction','event','agent','membername','lastevent','null','substatus','offlineMessage','equals','exports','util','lodash','mustache','ioredis','./integration','./script','../../../config/environment','../../../config/logger','trigger','redis','defaults','localhost','winapp','triggers','agents','voiceQueues'];(function(_0x499f2c,_0x52f9b6){var _0x5b778a=function(_0x1c239c){while(--_0x1c239c){_0x499f2c['push'](_0x499f2c['shift']());}};_0x5b778a(++_0x52f9b6);}(_0xc7fd,0x164));var _0xdc7f=function(_0xde65ec,_0x13946d){_0xde65ec=_0xde65ec-0x0;var _0x27634=_0xc7fd[_0xde65ec];return _0x27634;};'use strict';var util=require(_0xdc7f('0x0'));var _=require(_0xdc7f('0x1'));var url=require('url');var Mustache=require(_0xdc7f('0x2'));var Redis=require(_0xdc7f('0x3'));var urlforward=require('./urlforward');var integration=require(_0xdc7f('0x4'));var cmContact=require('./cmContact');var script=require(_0xdc7f('0x5'));var config=require(_0xdc7f('0x6'));var logger=require(_0xdc7f('0x7'))(_0xdc7f('0x8'));var ami=require('../ami');config[_0xdc7f('0x9')]=_[_0xdc7f('0xa')](config[_0xdc7f('0x9')],{'host':_0xdc7f('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xdc7f('0x9')]));var operators={'equals':function(_0x35335e,_0x25a670){return _0x35335e==_0x25a670;},'not_equals':function(_0x3abf77,_0x75d37a){return _0x3abf77!=_0x75d37a;}};var barAndWebActions=['popup','url',_0xdc7f('0xc')];function Trigger(_0x19da15){this[_0xdc7f('0xd')]=_0x19da15[_0xdc7f('0xd')];this[_0xdc7f('0xe')]=_0x19da15['agents'];this[_0xdc7f('0xf')]=_0x19da15[_0xdc7f('0xf')];this[_0xdc7f('0x10')]=_0x19da15[_0xdc7f('0x10')];this['voiceExtensions']=_0x19da15[_0xdc7f('0x11')];this['zendeskAccounts']=_0x19da15[_0xdc7f('0x12')];this[_0xdc7f('0x13')]=_0x19da15[_0xdc7f('0x13')];this['salesforceAccounts']=_0x19da15[_0xdc7f('0x14')];this[_0xdc7f('0x15')]=_0x19da15[_0xdc7f('0x15')];this[_0xdc7f('0x16')]=_0x19da15['zohoAccounts'];this[_0xdc7f('0x17')]=_0x19da15[_0xdc7f('0x17')];this[_0xdc7f('0x18')]=_0x19da15[_0xdc7f('0x18')];this[_0xdc7f('0x19')]=_0x19da15[_0xdc7f('0x19')];this[_0xdc7f('0x1a')]=_0x19da15['dynamics365Accounts'];this[_0xdc7f('0x1b')]=_0x19da15[_0xdc7f('0x1b')];this[_0xdc7f('0x1c')]={'zendesk':this[_0xdc7f('0x12')],'salesforce':this[_0xdc7f('0x14')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xdc7f('0x15')],'zoho':this[_0xdc7f('0x16')],'desk':this[_0xdc7f('0x17')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xdc7f('0x1a')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xdc7f('0x19')]};ami['on']('custom:agentcalled',this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on']('custom:agentconnect',this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x1f'),this['syncCustomEvent']['bind'](this));ami['on'](_0xdc7f('0x20'),this['syncCustomEvent'][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x21'),this['syncCustomEvent'][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x22'),this[_0xdc7f('0x1d')]['bind'](this));ami['on'](_0xdc7f('0x23'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on']('custom:agentcongestion',this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x24'),this[_0xdc7f('0x1d')]['bind'](this));ami['on'](_0xdc7f('0x25'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on']('custom:queuecallerabandon',this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on']('custom:timeout',this[_0xdc7f('0x1d')]['bind'](this));ami['on'](_0xdc7f('0x26'),this[_0xdc7f('0x27')]['bind'](this));ami['on'](_0xdc7f('0x28'),this['syncAgentDial']['bind'](this));ami['on'](_0xdc7f('0x29'),this[_0xdc7f('0x27')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x2a'),this[_0xdc7f('0x1d')]['bind'](this));ami['on'](_0xdc7f('0x2b'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x2c'),this['syncCustomEvent'][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x2d'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x2e'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on']('custom:acceptmessage',this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x2f'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));ami['on'](_0xdc7f('0x30'),this[_0xdc7f('0x1d')][_0xdc7f('0x1e')](this));}Trigger[_0xdc7f('0x31')][_0xdc7f('0x32')]=function(_0x491f77,_0x276500,_0x487a5d){logger[_0xdc7f('0x33')](_0x491f77,_0x276500,JSON[_0xdc7f('0x34')](_0x487a5d));io['to'](_0x491f77)[_0xdc7f('0x32')](_0x276500,_0x487a5d);};Trigger[_0xdc7f('0x31')][_0xdc7f('0x1d')]=function(_0x1b344a){var _0x3a957c=_['clone'](_0x1b344a);if(typeof _0x3a957c[_0xdc7f('0x35')]===_0xdc7f('0x36')){_0x3a957c['motionChannel']=_0xdc7f('0x37');}logger[_0xdc7f('0x38')](_0xdc7f('0x1d'),util[_0xdc7f('0x39')](_0x3a957c,{'showHidden':!![],'depth':null}));this[_0xdc7f('0x3a')](_0x3a957c);};Trigger[_0xdc7f('0x31')][_0xdc7f('0x27')]=function(_0x22f8c8){if(this[_0xdc7f('0xe')][_0x22f8c8[_0xdc7f('0x3b')]]){this[_0xdc7f('0x1d')](_0x22f8c8);}};Trigger[_0xdc7f('0x31')][_0xdc7f('0x3a')]=function(_0x3b3a92){var _0x4d24b6;for(var _0xd27f05 in this[_0xdc7f('0xd')]){if(this[_0xdc7f('0xd')]['hasOwnProperty'](_0xd27f05)){if(this[_0xdc7f('0xd')][_0xd27f05][_0xdc7f('0x3c')]){_0x4d24b6=this[_0xdc7f('0x3d')](this[_0xdc7f('0xd')][_0xd27f05],_0x3b3a92);if(_0x4d24b6){_[_0xdc7f('0x3e')](_0x3b3a92,_0x3b3a92[_0xdc7f('0x3f')]);for(var _0x393f2d=0x0,_0x10c3c6,_0x1c8a8b,_0xb7c40d;_0x393f2d<this[_0xdc7f('0xd')][_0xd27f05][_0xdc7f('0x40')][_0xdc7f('0x41')];_0x393f2d+=0x1){_0x10c3c6=this['triggers'][_0xd27f05]['Actions'][_0x393f2d];if(this['agents'][_0x3b3a92[_0xdc7f('0x3b')]]){switch(_0x10c3c6[_0xdc7f('0x42')][_0xdc7f('0x43')]()){case _0xdc7f('0x44'):break;case'motionbar':case _0xdc7f('0x45'):var _0x39d791={};switch(barAndWebActions[_0x10c3c6[_0xdc7f('0x46')]]){case'popup':_0x39d791[_0xdc7f('0x47')]=_0x10c3c6[_0xdc7f('0x48')];_0x39d791['html']=this[_0xdc7f('0x10')][_0x10c3c6[_0xdc7f('0x48')]]?Mustache['render'](this[_0xdc7f('0x10')][_0x10c3c6['data2']][_0xdc7f('0x49')],_0x3b3a92):'template\x20not\x20found';break;case _0xdc7f('0x4a'):_0x39d791[_0xdc7f('0x4b')]=this['buildUri'](_0x10c3c6[_0xdc7f('0x48')],_0x3b3a92,_[_0xdc7f('0x4c')](_0x10c3c6['data3'])?!![]:parseInt(_0x10c3c6[_0xdc7f('0x4d')],0xa));if(_['isNil'](_0x10c3c6[_0xdc7f('0x4e')])){_0x39d791[_0xdc7f('0x4f')]='0';}else{_0x39d791[_0xdc7f('0x50')]=_0x10c3c6[_0xdc7f('0x4e')];_0x39d791[_0xdc7f('0x51')]=_[_0xdc7f('0x4c')](_0x10c3c6[_0xdc7f('0x52')])?_0xdc7f('0x53'):_0x10c3c6[_0xdc7f('0x52')];_0x39d791[_0xdc7f('0x54')]=_[_0xdc7f('0x4c')](_0x10c3c6['data6'])?'600':_0x10c3c6['data6'];}break;case _0xdc7f('0xc'):_0x39d791['winApplication']=_0x10c3c6[_0xdc7f('0x48')]?Mustache[_0xdc7f('0x55')](_0x10c3c6[_0xdc7f('0x48')],_0x3b3a92):'';_0x39d791[_0xdc7f('0x56')]=_0x10c3c6[_0xdc7f('0x4d')]?Mustache[_0xdc7f('0x55')](_0x10c3c6[_0xdc7f('0x4d')],_0x3b3a92):'';break;}this['emit'](util['format'](_0xdc7f('0x57'),this[_0xdc7f('0xe')][_0x3b3a92[_0xdc7f('0x3b')]][_0xdc7f('0x58')]),util[_0xdc7f('0x59')]('trigger:%s:%s',_0x10c3c6[_0xdc7f('0x42')][_0xdc7f('0x43')](),barAndWebActions[_0x10c3c6['data1']]),_[_0xdc7f('0x3e')](_0x39d791,_0x3b3a92));break;case _0xdc7f('0x5a'):this['emit'](util[_0xdc7f('0x59')]('user:%s',this[_0xdc7f('0xe')][_0x3b3a92[_0xdc7f('0x3b')]]['name']),util[_0xdc7f('0x59')](_0xdc7f('0x5b'),_0x10c3c6[_0xdc7f('0x42')][_0xdc7f('0x43')]()),_['merge']({'ProjectId':parseInt(_0x10c3c6[_0xdc7f('0x46')],0xa)},_0x3b3a92));break;default:this[_0xdc7f('0x32')](util[_0xdc7f('0x59')](_0xdc7f('0x57'),this['agents'][_0x3b3a92['interface']][_0xdc7f('0x58')]),util[_0xdc7f('0x59')](_0xdc7f('0x5b'),_0x10c3c6[_0xdc7f('0x42')][_0xdc7f('0x43')]()),_[_0xdc7f('0x3e')]({},_0x10c3c6,_0x3b3a92));}}switch(_0x10c3c6['action'][_0xdc7f('0x43')]()){case'contactmanager':cmContact[_0xdc7f('0x5c')](this[_0xdc7f('0xe')][_0x3b3a92[_0xdc7f('0x3b')]],this[_0xdc7f('0xd')][_0xd27f05],_0x10c3c6,_0x3b3a92);break;case'integration':integration['exec'](_0x10c3c6,_0x3b3a92,this[_0xdc7f('0x1c')],this[_0xdc7f('0xe')][_0x3b3a92[_0xdc7f('0x3b')]],this[_0xdc7f('0xf')][_0x3b3a92[_0xdc7f('0x5d')]],this['voiceExtensions'][_0x3b3a92[_0xdc7f('0x5e')]]);break;case _0xdc7f('0x5f'):urlforward['exec'](_0x10c3c6,_0x3b3a92);break;case _0xdc7f('0x60'):script[_0xdc7f('0x5c')](_0x10c3c6,_0x3b3a92);break;}}}}}}};Trigger[_0xdc7f('0x31')]['buildUri']=function(_0x31bed0,_0x1638d6,_0x4ed1a1){var _0x193201=url['parse'](Mustache[_0xdc7f('0x55')](_0x31bed0,_0x1638d6),!![]);if(_0x4ed1a1){_[_0xdc7f('0x3e')](_0x193201[_0xdc7f('0x61')],_0x1638d6);}delete _0x193201[_0xdc7f('0x62')];var _0x57449d=url[_0xdc7f('0x59')](_0x193201);_0x57449d=_0x57449d['replace'](/\/\?/g,'?');return _0x57449d;};Trigger[_0xdc7f('0x31')]['checkTrigger']=function(_0x206f2f,_0x2698f2){var _0x2386cf=!![];var _0x2b4ecb=!![];var _0x16b3da=![];if(_0x206f2f[_0xdc7f('0x63')]===_0x2698f2[_0xdc7f('0x35')]){_0x16b3da=!![];}if(_0x206f2f[_0xdc7f('0x64')][_0xdc7f('0x41')]){_0x2386cf=_[_0xdc7f('0x65')](_0x206f2f[_0xdc7f('0x64')],this[_0xdc7f('0x66')](_0x2698f2,_0x206f2f[_0xdc7f('0x63')]));}if(_0x206f2f['AnyConditions'][_0xdc7f('0x41')]){_0x2b4ecb=_[_0xdc7f('0x67')](_0x206f2f['AnyConditions'],this['checkConditions'](_0x2698f2,_0x206f2f[_0xdc7f('0x63')]));}var _0x416d52=_0x16b3da&&_0x2386cf&&_0x2b4ecb;logger[_0xdc7f('0x38')](_0xdc7f('0x68'),util['inspect'](_0x206f2f,{'showHidden':!![],'depth':null}),_0xdc7f('0x69'),util['inspect'](_0x2698f2,{'showHidden':!![],'depth':null}),_0x16b3da,_0x2386cf,_0x2b4ecb);return _0x416d52;};Trigger[_0xdc7f('0x31')][_0xdc7f('0x66')]=function(_0x23befa,_0x30cfa9){return function(_0x301ec0){switch(_0x301ec0[_0xdc7f('0x6a')]){case _0xdc7f('0x6b'):if(_0x23befa[_0xdc7f('0x63')]===_0x30cfa9){if(_0x30cfa9===_0xdc7f('0x6c')){return _0x23befa[_0xdc7f('0x6d')]?operators[_0x301ec0['operator']](Number(_0x301ec0[_0xdc7f('0x6e')]),_0x23befa[_0xdc7f('0x6d')]):![];}else{return _0x23befa[_[_0xdc7f('0x6f')](_0x30cfa9)+_0xdc7f('0x70')]?operators[_0x301ec0[_0xdc7f('0x71')]](Number(_0x301ec0[_0xdc7f('0x6e')]),_0x23befa[_[_0xdc7f('0x6f')](_0x30cfa9)+_0xdc7f('0x70')]):![];}}break;case _0xdc7f('0x72'):case'message':if(_0x23befa[_0xdc7f('0x63')]===_0x30cfa9){return _0x23befa['event']?operators[_0x301ec0[_0xdc7f('0x71')]](_0x301ec0[_0xdc7f('0x6e')],_0x23befa[_0xdc7f('0x73')]):![];}break;case _0xdc7f('0x5d'):return _0x23befa[_0xdc7f('0x5d')]?operators[_0x301ec0['operator']](_0x301ec0['value'],_0x23befa[_0xdc7f('0x5d')]):![];case _0xdc7f('0x74'):return _0x23befa[_0xdc7f('0x75')]?operators[_0x301ec0[_0xdc7f('0x71')]](_0x301ec0['value'],_0x23befa[_0xdc7f('0x75')]):![];case _0xdc7f('0x76'):return _0x23befa[_0xdc7f('0x76')]?operators[_0x301ec0[_0xdc7f('0x71')]](_0x301ec0[_0xdc7f('0x6e')],_0x23befa[_0xdc7f('0x76')]):![];case _0xdc7f('0x5e'):return _0x23befa[_0xdc7f('0x5e')]?operators[_0x301ec0[_0xdc7f('0x71')]](_0x301ec0['value'],_0x23befa[_0xdc7f('0x5e')]):![];case'mailSubstatus':if(_0x301ec0[_0xdc7f('0x6e')]===_0xdc7f('0x77'))_0x301ec0[_0xdc7f('0x6e')]=null;return typeof _0x23befa['substatus']!=='undefined'?operators[_0x301ec0[_0xdc7f('0x71')]](_0x301ec0[_0xdc7f('0x6e')],_0x23befa[_0xdc7f('0x78')]):![];case _0xdc7f('0x79'):if(_0x23befa['channel']===_0x30cfa9){return _0x301ec0[_0xdc7f('0x6e')]==='created'&&_0x301ec0[_0xdc7f('0x71')]===_0xdc7f('0x7a')?!![]:![];}break;}return![];};};module[_0xdc7f('0x7b')]=Trigger;