Built motion from commit 19a84241.|2.5.34
[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 _0xff44=['jscripty','name','trigger:%s','action','integration','exec','accounts','routeId','urlforward','script','parse','query','search','replace','channel','AllConditions','every','checkConditions','AnyConditions','field','chat','ChatWebsiteId','value','AccountId','operator','upperFirst','interaction','message','event','queue','agent','membername','lastevent','exports','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:amd','custom:timeout','custom:dialconnect','syncAgentDial','custom:newinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','stringify','clone','motionChannel','undefined','checkTriggers','interface','status','checkTrigger','merge','variables','Actions','length','toLowerCase','motionbar','data1','TemplateId','html','render','data2','template\x20not\x20found','uri','buildUri','data3','isNil','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winArguments','user:%s','format','trigger:%s:%s'];(function(_0xcba7d9,_0x5641c3){var _0x3bbd04=function(_0x302f6a){while(--_0x302f6a){_0xcba7d9['push'](_0xcba7d9['shift']());}};_0x3bbd04(++_0x5641c3);}(_0xff44,0x9b));var _0x4ff4=function(_0x1d5ba8,_0x412a52){_0x1d5ba8=_0x1d5ba8-0x0;var _0x1022a2=_0xff44[_0x1d5ba8];return _0x1022a2;};'use strict';var util=require('util');var _=require(_0x4ff4('0x0'));var url=require(_0x4ff4('0x1'));var Mustache=require(_0x4ff4('0x2'));var Redis=require(_0x4ff4('0x3'));var urlforward=require(_0x4ff4('0x4'));var integration=require(_0x4ff4('0x5'));var cmContact=require(_0x4ff4('0x6'));var script=require(_0x4ff4('0x7'));var config=require(_0x4ff4('0x8'));var logger=require(_0x4ff4('0x9'))(_0x4ff4('0xa'));var ami=require('../ami');config[_0x4ff4('0xb')]=_[_0x4ff4('0xc')](config[_0x4ff4('0xb')],{'host':_0x4ff4('0xd'),'port':0x18eb});var io=require(_0x4ff4('0xe'))(new Redis(config[_0x4ff4('0xb')]));var operators={'equals':function(_0xe8310,_0x59df79){return _0xe8310==_0x59df79;},'not_equals':function(_0x57a806,_0x4e5c21){return _0x57a806!=_0x4e5c21;}};var barAndWebActions=[_0x4ff4('0xf'),_0x4ff4('0x1'),_0x4ff4('0x10')];function Trigger(_0x5a33b3){this[_0x4ff4('0x11')]=_0x5a33b3['triggers'];this['agents']=_0x5a33b3[_0x4ff4('0x12')];this[_0x4ff4('0x13')]=_0x5a33b3[_0x4ff4('0x13')];this['templates']=_0x5a33b3[_0x4ff4('0x14')];this[_0x4ff4('0x15')]=_0x5a33b3[_0x4ff4('0x15')];this['zendeskAccounts']=_0x5a33b3[_0x4ff4('0x16')];this[_0x4ff4('0x17')]=_0x5a33b3['freshdeskAccounts'];this[_0x4ff4('0x18')]=_0x5a33b3['salesforceAccounts'];this[_0x4ff4('0x19')]=_0x5a33b3[_0x4ff4('0x19')];this[_0x4ff4('0x1a')]=_0x5a33b3[_0x4ff4('0x1a')];this[_0x4ff4('0x1b')]=_0x5a33b3[_0x4ff4('0x1b')];this[_0x4ff4('0x1c')]=_0x5a33b3[_0x4ff4('0x1c')];this['servicenowAccounts']=_0x5a33b3[_0x4ff4('0x1d')];this[_0x4ff4('0x1e')]=_0x5a33b3['dynamics365Accounts'];this['freshsalesAccounts']=_0x5a33b3['freshsalesAccounts'];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x4ff4('0x18')],'freshdesk':this[_0x4ff4('0x17')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0x4ff4('0x1b')],'vtiger':this[_0x4ff4('0x1c')],'dynamics365':this[_0x4ff4('0x1e')],'freshsales':this[_0x4ff4('0x1f')],'servicenow':this[_0x4ff4('0x1d')]};ami['on'](_0x4ff4('0x20'),this[_0x4ff4('0x21')]['bind'](this));ami['on'](_0x4ff4('0x22'),this['syncCustomEvent'][_0x4ff4('0x23')](this));ami['on']('custom:agentringnoanswer',this[_0x4ff4('0x21')][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x24'),this['syncCustomEvent'][_0x4ff4('0x23')](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent'][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x25'),this[_0x4ff4('0x21')][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x26'),this[_0x4ff4('0x21')]['bind'](this));ami['on'](_0x4ff4('0x27'),this[_0x4ff4('0x21')]['bind'](this));ami['on']('custom:agentreject',this[_0x4ff4('0x21')][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x28'),this[_0x4ff4('0x21')][_0x4ff4('0x23')](this));ami['on']('custom:queuecallerabandon',this['syncCustomEvent'][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x29'),this['syncCustomEvent'][_0x4ff4('0x23')](this));ami['on']('custom:dialbegin',this['syncAgentDial'][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x2a'),this[_0x4ff4('0x2b')][_0x4ff4('0x23')](this));ami['on']('custom:dialend',this[_0x4ff4('0x2b')][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x2c'),this[_0x4ff4('0x21')]['bind'](this));ami['on']('custom:closedinteraction',this[_0x4ff4('0x21')][_0x4ff4('0x23')](this));ami['on']('custom:incomingmessage',this[_0x4ff4('0x21')][_0x4ff4('0x23')](this));ami['on'](_0x4ff4('0x2d'),this[_0x4ff4('0x21')]['bind'](this));ami['on'](_0x4ff4('0x2e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x4ff4('0x2f'),this['syncCustomEvent'][_0x4ff4('0x23')](this));}Trigger[_0x4ff4('0x30')][_0x4ff4('0x31')]=function(_0x119f5b,_0x24a452,_0x1987b9){logger['info'](_0x119f5b,_0x24a452,JSON[_0x4ff4('0x32')](_0x1987b9));io['to'](_0x119f5b)[_0x4ff4('0x31')](_0x24a452,_0x1987b9);};Trigger[_0x4ff4('0x30')][_0x4ff4('0x21')]=function(_0x2d4911){var _0x3ebbb7=_[_0x4ff4('0x33')](_0x2d4911);if(typeof _0x3ebbb7[_0x4ff4('0x34')]===_0x4ff4('0x35')){_0x3ebbb7['motionChannel']='voice';}this[_0x4ff4('0x36')](_0x3ebbb7);};Trigger[_0x4ff4('0x30')][_0x4ff4('0x2b')]=function(_0x1b4b41){if(this[_0x4ff4('0x12')][_0x1b4b41[_0x4ff4('0x37')]]){this[_0x4ff4('0x21')](_0x1b4b41);}};Trigger[_0x4ff4('0x30')][_0x4ff4('0x36')]=function(_0x139ac1){var _0x399aa4;for(var _0x22e586 in this[_0x4ff4('0x11')]){if(this['triggers']['hasOwnProperty'](_0x22e586)){if(this[_0x4ff4('0x11')][_0x22e586][_0x4ff4('0x38')]){_0x399aa4=this[_0x4ff4('0x39')](this['triggers'][_0x22e586],_0x139ac1);if(_0x399aa4){_[_0x4ff4('0x3a')](_0x139ac1,_0x139ac1[_0x4ff4('0x3b')]);for(var _0x357b73=0x0,_0x3a6b39,_0x59a276,_0x2cbd8d;_0x357b73<this[_0x4ff4('0x11')][_0x22e586][_0x4ff4('0x3c')][_0x4ff4('0x3d')];_0x357b73+=0x1){_0x3a6b39=this[_0x4ff4('0x11')][_0x22e586][_0x4ff4('0x3c')][_0x357b73];if(this['agents'][_0x139ac1[_0x4ff4('0x37')]]){switch(_0x3a6b39['action'][_0x4ff4('0x3e')]()){case'contactmanager':break;case _0x4ff4('0x3f'):case'browser':var _0x40b995={};switch(barAndWebActions[_0x3a6b39[_0x4ff4('0x40')]]){case _0x4ff4('0xf'):_0x40b995[_0x4ff4('0x41')]=_0x3a6b39['data2'];_0x40b995[_0x4ff4('0x42')]=this['templates'][_0x3a6b39['data2']]?Mustache[_0x4ff4('0x43')](this[_0x4ff4('0x14')][_0x3a6b39[_0x4ff4('0x44')]]['html'],_0x139ac1):_0x4ff4('0x45');break;case _0x4ff4('0x1'):_0x40b995[_0x4ff4('0x46')]=this[_0x4ff4('0x47')](_0x3a6b39['data2'],_0x139ac1,_['isNil'](_0x3a6b39[_0x4ff4('0x48')])?!![]:parseInt(_0x3a6b39[_0x4ff4('0x48')],0xa));if(_[_0x4ff4('0x49')](_0x3a6b39[_0x4ff4('0x4a')])){_0x40b995[_0x4ff4('0x4b')]='0';}else{_0x40b995[_0x4ff4('0x4c')]=_0x3a6b39[_0x4ff4('0x4a')];_0x40b995[_0x4ff4('0x4d')]=_[_0x4ff4('0x49')](_0x3a6b39[_0x4ff4('0x4e')])?_0x4ff4('0x4f'):_0x3a6b39[_0x4ff4('0x4e')];_0x40b995[_0x4ff4('0x50')]=_[_0x4ff4('0x49')](_0x3a6b39[_0x4ff4('0x51')])?_0x4ff4('0x52'):_0x3a6b39[_0x4ff4('0x51')];}break;case _0x4ff4('0x10'):_0x40b995['winApplication']=_0x3a6b39[_0x4ff4('0x44')]?Mustache[_0x4ff4('0x43')](_0x3a6b39[_0x4ff4('0x44')],_0x139ac1):'';_0x40b995[_0x4ff4('0x53')]=_0x3a6b39['data3']?Mustache[_0x4ff4('0x43')](_0x3a6b39[_0x4ff4('0x48')],_0x139ac1):'';break;}this[_0x4ff4('0x31')](util['format'](_0x4ff4('0x54'),this[_0x4ff4('0x12')][_0x139ac1['interface']]['name']),util[_0x4ff4('0x55')](_0x4ff4('0x56'),_0x3a6b39['action']['toLowerCase'](),barAndWebActions[_0x3a6b39[_0x4ff4('0x40')]]),_[_0x4ff4('0x3a')](_0x40b995,_0x139ac1));break;case _0x4ff4('0x57'):this[_0x4ff4('0x31')](util[_0x4ff4('0x55')]('user:%s',this['agents'][_0x139ac1['interface']][_0x4ff4('0x58')]),util[_0x4ff4('0x55')](_0x4ff4('0x59'),_0x3a6b39[_0x4ff4('0x5a')][_0x4ff4('0x3e')]()),_[_0x4ff4('0x3a')]({'ProjectId':parseInt(_0x3a6b39[_0x4ff4('0x40')],0xa)},_0x139ac1));break;default:this[_0x4ff4('0x31')](util[_0x4ff4('0x55')](_0x4ff4('0x54'),this[_0x4ff4('0x12')][_0x139ac1[_0x4ff4('0x37')]][_0x4ff4('0x58')]),util[_0x4ff4('0x55')](_0x4ff4('0x59'),_0x3a6b39[_0x4ff4('0x5a')]['toLowerCase']()),_[_0x4ff4('0x3a')]({},_0x3a6b39,_0x139ac1));}}switch(_0x3a6b39[_0x4ff4('0x5a')][_0x4ff4('0x3e')]()){case'contactmanager':cmContact['exec'](this['agents'][_0x139ac1[_0x4ff4('0x37')]],this[_0x4ff4('0x11')][_0x22e586],_0x3a6b39,_0x139ac1);break;case _0x4ff4('0x5b'):integration[_0x4ff4('0x5c')](_0x3a6b39,_0x139ac1,this[_0x4ff4('0x5d')],this[_0x4ff4('0x12')][_0x139ac1[_0x4ff4('0x37')]],this['voiceQueues'][_0x139ac1['queue']],this[_0x4ff4('0x15')][_0x139ac1[_0x4ff4('0x5e')]]);break;case _0x4ff4('0x5f'):urlforward[_0x4ff4('0x5c')](_0x3a6b39,_0x139ac1);break;case _0x4ff4('0x60'):script['exec'](_0x3a6b39,_0x139ac1);break;}}}}}}};Trigger[_0x4ff4('0x30')][_0x4ff4('0x47')]=function(_0x4129e5,_0x42d04c,_0xb67556){var _0x51f082=url[_0x4ff4('0x61')](Mustache[_0x4ff4('0x43')](_0x4129e5,_0x42d04c),!![]);if(_0xb67556){_['merge'](_0x51f082[_0x4ff4('0x62')],_0x42d04c);}delete _0x51f082[_0x4ff4('0x63')];var _0x1f87a5=url[_0x4ff4('0x55')](_0x51f082);_0x1f87a5=_0x1f87a5[_0x4ff4('0x64')](/\/\?/g,'?');return _0x1f87a5;};Trigger[_0x4ff4('0x30')][_0x4ff4('0x39')]=function(_0x1c791a,_0x81ea58){var _0x4aa5bc=!![];var _0x16b249=!![];var _0x1b4f8f=![];if(_0x1c791a[_0x4ff4('0x65')]===_0x81ea58[_0x4ff4('0x34')]){_0x1b4f8f=!![];}if(_0x1c791a[_0x4ff4('0x66')][_0x4ff4('0x3d')]){_0x4aa5bc=_[_0x4ff4('0x67')](_0x1c791a[_0x4ff4('0x66')],this[_0x4ff4('0x68')](_0x81ea58,_0x1c791a[_0x4ff4('0x65')]));}if(_0x1c791a[_0x4ff4('0x69')][_0x4ff4('0x3d')]){_0x16b249=_['some'](_0x1c791a['AnyConditions'],this[_0x4ff4('0x68')](_0x81ea58,_0x1c791a[_0x4ff4('0x65')]));}return _0x1b4f8f&&_0x4aa5bc&&_0x16b249;};Trigger['prototype'][_0x4ff4('0x68')]=function(_0x1e7e3f,_0x2f2bef){return function(_0x179f60){switch(_0x179f60[_0x4ff4('0x6a')]){case'account':if(_0x1e7e3f[_0x4ff4('0x65')]===_0x2f2bef){if(_0x2f2bef===_0x4ff4('0x6b')){return _0x1e7e3f[_0x4ff4('0x6c')]?operators[_0x179f60['operator']](Number(_0x179f60[_0x4ff4('0x6d')]),_0x1e7e3f[_0x4ff4('0x6c')]):![];}else{return _0x1e7e3f[_['upperFirst'](_0x2f2bef)+_0x4ff4('0x6e')]?operators[_0x179f60[_0x4ff4('0x6f')]](Number(_0x179f60['value']),_0x1e7e3f[_[_0x4ff4('0x70')](_0x2f2bef)+'AccountId']):![];}}break;case _0x4ff4('0x71'):case _0x4ff4('0x72'):if(_0x1e7e3f['channel']===_0x2f2bef){return _0x1e7e3f[_0x4ff4('0x73')]?operators[_0x179f60[_0x4ff4('0x6f')]](_0x179f60['value'],_0x1e7e3f[_0x4ff4('0x73')]):![];}break;case _0x4ff4('0x74'):return _0x1e7e3f['queue']?operators[_0x179f60['operator']](_0x179f60[_0x4ff4('0x6d')],_0x1e7e3f[_0x4ff4('0x74')]):![];case _0x4ff4('0x75'):return _0x1e7e3f['membername']?operators[_0x179f60[_0x4ff4('0x6f')]](_0x179f60[_0x4ff4('0x6d')],_0x1e7e3f[_0x4ff4('0x76')]):![];case _0x4ff4('0x77'):return _0x1e7e3f[_0x4ff4('0x77')]?operators[_0x179f60['operator']](_0x179f60[_0x4ff4('0x6d')],_0x1e7e3f[_0x4ff4('0x77')]):![];case'routeId':return _0x1e7e3f[_0x4ff4('0x5e')]?operators[_0x179f60[_0x4ff4('0x6f')]](_0x179f60['value'],_0x1e7e3f[_0x4ff4('0x5e')]):![];}return![];};};module[_0x4ff4('0x78')]=Trigger;