Built motion from commit da617fac.|2.6.6
[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 _0x2687=['account','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','mailSubstatus','substatus','undefined','created','equals','exports','util','lodash','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/environment','trigger','../ami','redis','localhost','socket.io-emitter','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','clone','motionChannel','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','action','motionbar','browser','data1','TemplateId','data2','html','template\x20not\x20found','uri','buildUri','isNil','data3','location','uriLocation','data4','data5','windowHeight','data6','600','winApplication','render','winArguments','format','name','toLowerCase','user:%s','trigger:%s','integration','exec','queue','routeId','parse','query','replace','AllConditions','checkConditions','channel','AnyConditions','some'];(function(_0x48521f,_0x5bfb83){var _0x541f9b=function(_0x5b5c5e){while(--_0x5b5c5e){_0x48521f['push'](_0x48521f['shift']());}};_0x541f9b(++_0x5bfb83);}(_0x2687,0x8f));var _0x7268=function(_0x5e78e7,_0x50be14){_0x5e78e7=_0x5e78e7-0x0;var _0xfa445f=_0x2687[_0x5e78e7];return _0xfa445f;};'use strict';var util=require(_0x7268('0x0'));var _=require(_0x7268('0x1'));var url=require('url');var Mustache=require(_0x7268('0x2'));var Redis=require(_0x7268('0x3'));var urlforward=require(_0x7268('0x4'));var integration=require('./integration');var cmContact=require(_0x7268('0x5'));var script=require(_0x7268('0x6'));var config=require(_0x7268('0x7'));var logger=require('../../../config/logger')(_0x7268('0x8'));var ami=require(_0x7268('0x9'));config[_0x7268('0xa')]=_['defaults'](config['redis'],{'host':_0x7268('0xb'),'port':0x18eb});var io=require(_0x7268('0xc'))(new Redis(config[_0x7268('0xa')]));var operators={'equals':function(_0x3b25f8,_0x32885e){return _0x3b25f8==_0x32885e;},'not_equals':function(_0x116b3f,_0x57c35a){return _0x116b3f!=_0x57c35a;}};var barAndWebActions=[_0x7268('0xd'),_0x7268('0xe'),_0x7268('0xf')];function Trigger(_0x19db51){this[_0x7268('0x10')]=_0x19db51[_0x7268('0x10')];this[_0x7268('0x11')]=_0x19db51['agents'];this[_0x7268('0x12')]=_0x19db51[_0x7268('0x12')];this[_0x7268('0x13')]=_0x19db51[_0x7268('0x13')];this[_0x7268('0x14')]=_0x19db51[_0x7268('0x14')];this['zendeskAccounts']=_0x19db51['zendeskAccounts'];this['freshdeskAccounts']=_0x19db51[_0x7268('0x15')];this[_0x7268('0x16')]=_0x19db51[_0x7268('0x16')];this[_0x7268('0x17')]=_0x19db51[_0x7268('0x17')];this[_0x7268('0x18')]=_0x19db51[_0x7268('0x18')];this[_0x7268('0x19')]=_0x19db51['deskAccounts'];this[_0x7268('0x1a')]=_0x19db51['vtigerAccounts'];this[_0x7268('0x1b')]=_0x19db51[_0x7268('0x1b')];this['dynamics365Accounts']=_0x19db51[_0x7268('0x1c')];this[_0x7268('0x1d')]=_0x19db51['freshsalesAccounts'];this[_0x7268('0x1e')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x7268('0x16')],'freshdesk':this[_0x7268('0x15')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x7268('0x18')],'desk':this['deskAccounts'],'vtiger':this[_0x7268('0x1a')],'dynamics365':this[_0x7268('0x1c')],'freshsales':this[_0x7268('0x1d')],'servicenow':this[_0x7268('0x1b')]};ami['on']('custom:agentcalled',this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x21'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x22'),this['syncCustomEvent'][_0x7268('0x20')](this));ami['on'](_0x7268('0x23'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x24'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x25'),this[_0x7268('0x1f')]['bind'](this));ami['on'](_0x7268('0x26'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x27'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x28'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x29'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x2a'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x2b'),this[_0x7268('0x2c')][_0x7268('0x20')](this));ami['on'](_0x7268('0x2d'),this[_0x7268('0x2c')][_0x7268('0x20')](this));ami['on'](_0x7268('0x2e'),this[_0x7268('0x2c')][_0x7268('0x20')](this));ami['on']('custom:newinteraction',this['syncCustomEvent']['bind'](this));ami['on'](_0x7268('0x2f'),this[_0x7268('0x1f')][_0x7268('0x20')](this));ami['on'](_0x7268('0x30'),this['syncCustomEvent']['bind'](this));ami['on'](_0x7268('0x31'),this['syncCustomEvent'][_0x7268('0x20')](this));ami['on']('custom:outgoingmessage',this[_0x7268('0x1f')]['bind'](this));ami['on'](_0x7268('0x32'),this['syncCustomEvent'][_0x7268('0x20')](this));ami['on'](_0x7268('0x33'),this['syncCustomEvent'][_0x7268('0x20')](this));ami['on'](_0x7268('0x34'),this[_0x7268('0x1f')]['bind'](this));}Trigger[_0x7268('0x35')][_0x7268('0x36')]=function(_0x28fc39,_0x53d722,_0x5630af){logger[_0x7268('0x37')](_0x28fc39,_0x53d722,JSON['stringify'](_0x5630af));io['to'](_0x28fc39)[_0x7268('0x36')](_0x53d722,_0x5630af);};Trigger[_0x7268('0x35')][_0x7268('0x1f')]=function(_0x4cf14d){var _0x1e5cee=_[_0x7268('0x38')](_0x4cf14d);if(typeof _0x1e5cee[_0x7268('0x39')]==='undefined'){_0x1e5cee[_0x7268('0x39')]=_0x7268('0x3a');}this[_0x7268('0x3b')](_0x1e5cee);};Trigger['prototype'][_0x7268('0x2c')]=function(_0x5e9209){if(this[_0x7268('0x11')][_0x5e9209[_0x7268('0x3c')]]){this[_0x7268('0x1f')](_0x5e9209);}};Trigger[_0x7268('0x35')]['checkTriggers']=function(_0x29310a){var _0x2e01da;for(var _0x10ac0e in this[_0x7268('0x10')]){if(this['triggers'][_0x7268('0x3d')](_0x10ac0e)){if(this['triggers'][_0x10ac0e][_0x7268('0x3e')]){_0x2e01da=this[_0x7268('0x3f')](this[_0x7268('0x10')][_0x10ac0e],_0x29310a);if(_0x2e01da){_[_0x7268('0x40')](_0x29310a,_0x29310a[_0x7268('0x41')]);for(var _0x295598=0x0,_0x204f91,_0x2e05fa,_0x4cb400;_0x295598<this[_0x7268('0x10')][_0x10ac0e][_0x7268('0x42')][_0x7268('0x43')];_0x295598+=0x1){_0x204f91=this[_0x7268('0x10')][_0x10ac0e]['Actions'][_0x295598];if(this[_0x7268('0x11')][_0x29310a[_0x7268('0x3c')]]){switch(_0x204f91[_0x7268('0x44')]['toLowerCase']()){case'contactmanager':break;case _0x7268('0x45'):case _0x7268('0x46'):var _0x36e1ff={};switch(barAndWebActions[_0x204f91[_0x7268('0x47')]]){case'popup':_0x36e1ff[_0x7268('0x48')]=_0x204f91[_0x7268('0x49')];_0x36e1ff[_0x7268('0x4a')]=this[_0x7268('0x13')][_0x204f91['data2']]?Mustache['render'](this[_0x7268('0x13')][_0x204f91['data2']][_0x7268('0x4a')],_0x29310a):_0x7268('0x4b');break;case _0x7268('0xe'):_0x36e1ff[_0x7268('0x4c')]=this[_0x7268('0x4d')](_0x204f91[_0x7268('0x49')],_0x29310a,_[_0x7268('0x4e')](_0x204f91[_0x7268('0x4f')])?!![]:parseInt(_0x204f91['data3'],0xa));if(_['isNil'](_0x204f91['data4'])){_0x36e1ff[_0x7268('0x50')]='0';}else{_0x36e1ff[_0x7268('0x51')]=_0x204f91[_0x7268('0x52')];_0x36e1ff['windowWidth']=_['isNil'](_0x204f91['data5'])?'800':_0x204f91[_0x7268('0x53')];_0x36e1ff[_0x7268('0x54')]=_[_0x7268('0x4e')](_0x204f91[_0x7268('0x55')])?_0x7268('0x56'):_0x204f91['data6'];}break;case _0x7268('0xf'):_0x36e1ff[_0x7268('0x57')]=_0x204f91[_0x7268('0x49')]?Mustache[_0x7268('0x58')](_0x204f91[_0x7268('0x49')],_0x29310a):'';_0x36e1ff[_0x7268('0x59')]=_0x204f91['data3']?Mustache[_0x7268('0x58')](_0x204f91[_0x7268('0x4f')],_0x29310a):'';break;}this[_0x7268('0x36')](util[_0x7268('0x5a')]('user:%s',this[_0x7268('0x11')][_0x29310a['interface']][_0x7268('0x5b')]),util[_0x7268('0x5a')]('trigger:%s:%s',_0x204f91[_0x7268('0x44')][_0x7268('0x5c')](),barAndWebActions[_0x204f91[_0x7268('0x47')]]),_[_0x7268('0x40')](_0x36e1ff,_0x29310a));break;case'jscripty':this['emit'](util[_0x7268('0x5a')](_0x7268('0x5d'),this['agents'][_0x29310a['interface']][_0x7268('0x5b')]),util[_0x7268('0x5a')](_0x7268('0x5e'),_0x204f91[_0x7268('0x44')][_0x7268('0x5c')]()),_['merge']({'ProjectId':parseInt(_0x204f91[_0x7268('0x47')],0xa)},_0x29310a));break;default:this[_0x7268('0x36')](util[_0x7268('0x5a')]('user:%s',this[_0x7268('0x11')][_0x29310a[_0x7268('0x3c')]]['name']),util['format'](_0x7268('0x5e'),_0x204f91[_0x7268('0x44')][_0x7268('0x5c')]()),_[_0x7268('0x40')]({},_0x204f91,_0x29310a));}}switch(_0x204f91['action']['toLowerCase']()){case'contactmanager':cmContact['exec'](this[_0x7268('0x11')][_0x29310a[_0x7268('0x3c')]],this[_0x7268('0x10')][_0x10ac0e],_0x204f91,_0x29310a);break;case _0x7268('0x5f'):integration[_0x7268('0x60')](_0x204f91,_0x29310a,this['accounts'],this['agents'][_0x29310a[_0x7268('0x3c')]],this[_0x7268('0x12')][_0x29310a[_0x7268('0x61')]],this[_0x7268('0x14')][_0x29310a[_0x7268('0x62')]]);break;case'urlforward':urlforward[_0x7268('0x60')](_0x204f91,_0x29310a);break;case'script':script[_0x7268('0x60')](_0x204f91,_0x29310a);break;}}}}}}};Trigger[_0x7268('0x35')]['buildUri']=function(_0xa36872,_0x2a7fb9,_0x48dfe8){var _0x3b0049=url[_0x7268('0x63')](Mustache[_0x7268('0x58')](_0xa36872,_0x2a7fb9),!![]);if(_0x48dfe8){_['merge'](_0x3b0049[_0x7268('0x64')],_0x2a7fb9);}delete _0x3b0049['search'];var _0x5d6d68=url['format'](_0x3b0049);_0x5d6d68=_0x5d6d68[_0x7268('0x65')](/\/\?/g,'?');return _0x5d6d68;};Trigger[_0x7268('0x35')][_0x7268('0x3f')]=function(_0x494c04,_0x410077){var _0x5f1344=!![];var _0x6199ed=!![];var _0x489f01=![];if(_0x494c04['channel']===_0x410077[_0x7268('0x39')]){_0x489f01=!![];}if(_0x494c04[_0x7268('0x66')]['length']){_0x5f1344=_['every'](_0x494c04[_0x7268('0x66')],this[_0x7268('0x67')](_0x410077,_0x494c04[_0x7268('0x68')]));}if(_0x494c04[_0x7268('0x69')][_0x7268('0x43')]){_0x6199ed=_[_0x7268('0x6a')](_0x494c04[_0x7268('0x69')],this[_0x7268('0x67')](_0x410077,_0x494c04[_0x7268('0x68')]));}return _0x489f01&&_0x5f1344&&_0x6199ed;};Trigger[_0x7268('0x35')][_0x7268('0x67')]=function(_0x571d04,_0x5bcefb){return function(_0x551065){switch(_0x551065['field']){case _0x7268('0x6b'):if(_0x571d04[_0x7268('0x68')]===_0x5bcefb){if(_0x5bcefb==='chat'){return _0x571d04[_0x7268('0x6c')]?operators[_0x551065[_0x7268('0x6d')]](Number(_0x551065[_0x7268('0x6e')]),_0x571d04['ChatWebsiteId']):![];}else{return _0x571d04[_[_0x7268('0x6f')](_0x5bcefb)+_0x7268('0x70')]?operators[_0x551065[_0x7268('0x6d')]](Number(_0x551065[_0x7268('0x6e')]),_0x571d04[_[_0x7268('0x6f')](_0x5bcefb)+_0x7268('0x70')]):![];}}break;case _0x7268('0x71'):case _0x7268('0x72'):if(_0x571d04[_0x7268('0x68')]===_0x5bcefb){return _0x571d04[_0x7268('0x73')]?operators[_0x551065[_0x7268('0x6d')]](_0x551065['value'],_0x571d04[_0x7268('0x73')]):![];}break;case _0x7268('0x61'):return _0x571d04[_0x7268('0x61')]?operators[_0x551065[_0x7268('0x6d')]](_0x551065[_0x7268('0x6e')],_0x571d04[_0x7268('0x61')]):![];case _0x7268('0x74'):return _0x571d04[_0x7268('0x75')]?operators[_0x551065[_0x7268('0x6d')]](_0x551065[_0x7268('0x6e')],_0x571d04[_0x7268('0x75')]):![];case _0x7268('0x76'):return _0x571d04['lastevent']?operators[_0x551065[_0x7268('0x6d')]](_0x551065[_0x7268('0x6e')],_0x571d04[_0x7268('0x76')]):![];case _0x7268('0x62'):return _0x571d04['routeId']?operators[_0x551065['operator']](_0x551065['value'],_0x571d04[_0x7268('0x62')]):![];case _0x7268('0x77'):if(_0x551065[_0x7268('0x6e')]==='null')_0x551065[_0x7268('0x6e')]=null;return typeof _0x571d04[_0x7268('0x78')]!==_0x7268('0x79')?operators[_0x551065[_0x7268('0x6d')]](_0x551065['value'],_0x571d04['substatus']):![];case'offlineMessage':if(_0x571d04['channel']===_0x5bcefb){return _0x551065[_0x7268('0x6e')]===_0x7268('0x7a')&&_0x551065[_0x7268('0x6d')]===_0x7268('0x7b')?!![]:![];}break;}return![];};};module[_0x7268('0x7c')]=Trigger;