7b440b8b0caf82bac5f8fb2d080da57bc583e272
[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 _0x564d=['800','data6','600','winapp','winApplication','render','winArguments','user:%s','name','format','trigger:%s:%s','trigger:%s','exec','integration','accounts','urlforward','script','parse','query','search','replace','checkTrigger','channel','AllConditions','length','every','checkConditions','AnyConditions','some','checkTrigger:\x20trigger','inspect','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','queue','agent','membername','lastevent','routeId','null','substatus','offlineMessage','created','equals','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','socket.io-emitter','popup','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','debug','interface','checkTriggers','hasOwnProperty','status','merge','Actions','action','toLowerCase','contactmanager','motionbar','browser','data1','data2','html','templates','uri','buildUri','isNil','data3','data4','location','windowWidth','data5'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0x564d,0x1b8));var _0xd564=function(_0x106ad1,_0x53253b){_0x106ad1=_0x106ad1-0x0;var _0x24ca40=_0x564d[_0x106ad1];return _0x24ca40;};'use strict';var util=require(_0xd564('0x0'));var _=require(_0xd564('0x1'));var url=require('url');var Mustache=require(_0xd564('0x2'));var Redis=require(_0xd564('0x3'));var urlforward=require(_0xd564('0x4'));var integration=require(_0xd564('0x5'));var cmContact=require(_0xd564('0x6'));var script=require('./script');var config=require(_0xd564('0x7'));var logger=require(_0xd564('0x8'))(_0xd564('0x9'));var ami=require(_0xd564('0xa'));config['redis']=_[_0xd564('0xb')](config[_0xd564('0xc')],{'host':'localhost','port':0x18eb});var io=require(_0xd564('0xd'))(new Redis(config[_0xd564('0xc')]));var operators={'equals':function(_0x617c98,_0x17b907){return _0x617c98==_0x17b907;},'not_equals':function(_0xf9e14a,_0x3663bd){return _0xf9e14a!=_0x3663bd;}};var barAndWebActions=[_0xd564('0xe'),'url','winapp'];function Trigger(_0xab7557){this['triggers']=_0xab7557[_0xd564('0xf')];this['agents']=_0xab7557[_0xd564('0x10')];this[_0xd564('0x11')]=_0xab7557['voiceQueues'];this['templates']=_0xab7557['templates'];this[_0xd564('0x12')]=_0xab7557[_0xd564('0x12')];this['zendeskAccounts']=_0xab7557[_0xd564('0x13')];this[_0xd564('0x14')]=_0xab7557['freshdeskAccounts'];this[_0xd564('0x15')]=_0xab7557[_0xd564('0x15')];this[_0xd564('0x16')]=_0xab7557['sugarcrmAccounts'];this['zohoAccounts']=_0xab7557[_0xd564('0x17')];this[_0xd564('0x18')]=_0xab7557['deskAccounts'];this[_0xd564('0x19')]=_0xab7557[_0xd564('0x19')];this[_0xd564('0x1a')]=_0xab7557[_0xd564('0x1a')];this[_0xd564('0x1b')]=_0xab7557['dynamics365Accounts'];this['freshsalesAccounts']=_0xab7557[_0xd564('0x1c')];this['accounts']={'zendesk':this[_0xd564('0x13')],'salesforce':this[_0xd564('0x15')],'freshdesk':this[_0xd564('0x14')],'sugarcrm':this[_0xd564('0x16')],'zoho':this[_0xd564('0x17')],'desk':this[_0xd564('0x18')],'vtiger':this[_0xd564('0x19')],'dynamics365':this[_0xd564('0x1b')],'freshsales':this[_0xd564('0x1c')],'servicenow':this['servicenowAccounts']};ami['on'](_0xd564('0x1d'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on']('custom:agentconnect',this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x20'),this[_0xd564('0x1e')]['bind'](this));ami['on'](_0xd564('0x21'),this['syncCustomEvent'][_0xd564('0x1f')](this));ami['on'](_0xd564('0x22'),this['syncCustomEvent'][_0xd564('0x1f')](this));ami['on'](_0xd564('0x23'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on']('custom:agentbusy',this[_0xd564('0x1e')]['bind'](this));ami['on'](_0xd564('0x24'),this[_0xd564('0x1e')]['bind'](this));ami['on'](_0xd564('0x25'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x26'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x27'),this[_0xd564('0x1e')]['bind'](this));ami['on'](_0xd564('0x28'),this['syncCustomEvent'][_0xd564('0x1f')](this));ami['on']('custom:dialbegin',this[_0xd564('0x29')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x2a'),this[_0xd564('0x29')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x2b'),this[_0xd564('0x29')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x2c'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x2d'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x2e'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on'](_0xd564('0x2f'),this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on']('custom:outgoingmessage',this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on']('custom:acceptmessage',this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on']('custom:rejectmessage',this[_0xd564('0x1e')][_0xd564('0x1f')](this));ami['on']('custom:offlineMessage',this[_0xd564('0x1e')][_0xd564('0x1f')](this));}Trigger[_0xd564('0x30')][_0xd564('0x31')]=function(_0x231add,_0x1a4725,_0x239460){logger[_0xd564('0x32')](_0x231add,_0x1a4725,JSON[_0xd564('0x33')](_0x239460));io['to'](_0x231add)[_0xd564('0x31')](_0x1a4725,_0x239460);};Trigger[_0xd564('0x30')][_0xd564('0x1e')]=function(_0x8de77f){var _0x26fd13=_[_0xd564('0x34')](_0x8de77f);if(typeof _0x26fd13[_0xd564('0x35')]===_0xd564('0x36')){_0x26fd13[_0xd564('0x35')]=_0xd564('0x37');}logger[_0xd564('0x38')](_0xd564('0x1e'),util['inspect'](_0x26fd13,{'showHidden':!![],'depth':null}));this['checkTriggers'](_0x26fd13);};Trigger[_0xd564('0x30')][_0xd564('0x29')]=function(_0x557204){if(this[_0xd564('0x10')][_0x557204[_0xd564('0x39')]]){this[_0xd564('0x1e')](_0x557204);}};Trigger[_0xd564('0x30')][_0xd564('0x3a')]=function(_0x47d425){var _0x275124;for(var _0x39cad0 in this['triggers']){if(this[_0xd564('0xf')][_0xd564('0x3b')](_0x39cad0)){if(this[_0xd564('0xf')][_0x39cad0][_0xd564('0x3c')]){_0x275124=this['checkTrigger'](this['triggers'][_0x39cad0],_0x47d425);if(_0x275124){_[_0xd564('0x3d')](_0x47d425,_0x47d425['variables']);for(var _0x46490f=0x0,_0x41233d,_0x5bb9b5,_0x37eea3;_0x46490f<this[_0xd564('0xf')][_0x39cad0][_0xd564('0x3e')]['length'];_0x46490f+=0x1){_0x41233d=this[_0xd564('0xf')][_0x39cad0]['Actions'][_0x46490f];if(this[_0xd564('0x10')][_0x47d425[_0xd564('0x39')]]){switch(_0x41233d[_0xd564('0x3f')][_0xd564('0x40')]()){case _0xd564('0x41'):break;case _0xd564('0x42'):case _0xd564('0x43'):var _0x945dd8={};switch(barAndWebActions[_0x41233d[_0xd564('0x44')]]){case'popup':_0x945dd8['TemplateId']=_0x41233d[_0xd564('0x45')];_0x945dd8[_0xd564('0x46')]=this[_0xd564('0x47')][_0x41233d[_0xd564('0x45')]]?Mustache['render'](this[_0xd564('0x47')][_0x41233d[_0xd564('0x45')]][_0xd564('0x46')],_0x47d425):'template\x20not\x20found';break;case'url':_0x945dd8[_0xd564('0x48')]=this[_0xd564('0x49')](_0x41233d['data2'],_0x47d425,_[_0xd564('0x4a')](_0x41233d[_0xd564('0x4b')])?!![]:parseInt(_0x41233d[_0xd564('0x4b')],0xa));if(_['isNil'](_0x41233d[_0xd564('0x4c')])){_0x945dd8[_0xd564('0x4d')]='0';}else{_0x945dd8['uriLocation']=_0x41233d[_0xd564('0x4c')];_0x945dd8[_0xd564('0x4e')]=_[_0xd564('0x4a')](_0x41233d[_0xd564('0x4f')])?_0xd564('0x50'):_0x41233d[_0xd564('0x4f')];_0x945dd8['windowHeight']=_[_0xd564('0x4a')](_0x41233d[_0xd564('0x51')])?_0xd564('0x52'):_0x41233d[_0xd564('0x51')];}break;case _0xd564('0x53'):_0x945dd8[_0xd564('0x54')]=_0x41233d['data2']?Mustache[_0xd564('0x55')](_0x41233d[_0xd564('0x45')],_0x47d425):'';_0x945dd8[_0xd564('0x56')]=_0x41233d[_0xd564('0x4b')]?Mustache['render'](_0x41233d[_0xd564('0x4b')],_0x47d425):'';break;}this['emit'](util['format'](_0xd564('0x57'),this[_0xd564('0x10')][_0x47d425[_0xd564('0x39')]][_0xd564('0x58')]),util[_0xd564('0x59')](_0xd564('0x5a'),_0x41233d['action'][_0xd564('0x40')](),barAndWebActions[_0x41233d['data1']]),_[_0xd564('0x3d')](_0x945dd8,_0x47d425));break;case'jscripty':this[_0xd564('0x31')](util[_0xd564('0x59')](_0xd564('0x57'),this[_0xd564('0x10')][_0x47d425[_0xd564('0x39')]][_0xd564('0x58')]),util[_0xd564('0x59')](_0xd564('0x5b'),_0x41233d[_0xd564('0x3f')][_0xd564('0x40')]()),_['merge']({'ProjectId':parseInt(_0x41233d['data1'],0xa)},_0x47d425));break;default:this[_0xd564('0x31')](util[_0xd564('0x59')](_0xd564('0x57'),this[_0xd564('0x10')][_0x47d425[_0xd564('0x39')]][_0xd564('0x58')]),util[_0xd564('0x59')](_0xd564('0x5b'),_0x41233d['action'][_0xd564('0x40')]()),_[_0xd564('0x3d')]({},_0x41233d,_0x47d425));}}switch(_0x41233d[_0xd564('0x3f')][_0xd564('0x40')]()){case _0xd564('0x41'):cmContact[_0xd564('0x5c')](this['agents'][_0x47d425[_0xd564('0x39')]],this[_0xd564('0xf')][_0x39cad0],_0x41233d,_0x47d425);break;case _0xd564('0x5d'):integration[_0xd564('0x5c')](_0x41233d,_0x47d425,this[_0xd564('0x5e')],this[_0xd564('0x10')][_0x47d425[_0xd564('0x39')]],this[_0xd564('0x11')][_0x47d425['queue']],this[_0xd564('0x12')][_0x47d425['routeId']]);break;case _0xd564('0x5f'):urlforward['exec'](_0x41233d,_0x47d425);break;case _0xd564('0x60'):script[_0xd564('0x5c')](_0x41233d,_0x47d425);break;}}}}}}};Trigger['prototype'][_0xd564('0x49')]=function(_0x4a00e2,_0x38eec6,_0x2ab164){var _0xb793c5=url[_0xd564('0x61')](Mustache['render'](_0x4a00e2,_0x38eec6),!![]);if(_0x2ab164){_[_0xd564('0x3d')](_0xb793c5[_0xd564('0x62')],_0x38eec6);}delete _0xb793c5[_0xd564('0x63')];var _0x485eb3=url[_0xd564('0x59')](_0xb793c5);_0x485eb3=_0x485eb3[_0xd564('0x64')](/\/\?/g,'?');return _0x485eb3;};Trigger[_0xd564('0x30')][_0xd564('0x65')]=function(_0x58e429,_0xeb917){var _0x4b76bb=!![];var _0x2e6850=!![];var _0x49e001=![];if(_0x58e429[_0xd564('0x66')]===_0xeb917[_0xd564('0x35')]){_0x49e001=!![];}if(_0x58e429[_0xd564('0x67')][_0xd564('0x68')]){_0x4b76bb=_[_0xd564('0x69')](_0x58e429[_0xd564('0x67')],this[_0xd564('0x6a')](_0xeb917,_0x58e429[_0xd564('0x66')]));}if(_0x58e429[_0xd564('0x6b')]['length']){_0x2e6850=_[_0xd564('0x6c')](_0x58e429['AnyConditions'],this['checkConditions'](_0xeb917,_0x58e429[_0xd564('0x66')]));}var _0x5b2335=_0x49e001&&_0x4b76bb&&_0x2e6850;logger['debug'](_0xd564('0x6d'),util[_0xd564('0x6e')](_0x58e429,{'showHidden':!![],'depth':null}),'evt',util['inspect'](_0xeb917,{'showHidden':!![],'depth':null}),_0x49e001,_0x4b76bb,_0x2e6850);return _0x5b2335;};Trigger[_0xd564('0x30')][_0xd564('0x6a')]=function(_0x3a217d,_0x4782e7){return function(_0x5380b5){switch(_0x5380b5['field']){case'account':if(_0x3a217d[_0xd564('0x66')]===_0x4782e7){if(_0x4782e7===_0xd564('0x6f')){return _0x3a217d[_0xd564('0x70')]?operators[_0x5380b5[_0xd564('0x71')]](Number(_0x5380b5[_0xd564('0x72')]),_0x3a217d[_0xd564('0x70')]):![];}else{return _0x3a217d[_[_0xd564('0x73')](_0x4782e7)+_0xd564('0x74')]?operators[_0x5380b5[_0xd564('0x71')]](Number(_0x5380b5[_0xd564('0x72')]),_0x3a217d[_['upperFirst'](_0x4782e7)+_0xd564('0x74')]):![];}}break;case _0xd564('0x75'):case _0xd564('0x76'):if(_0x3a217d[_0xd564('0x66')]===_0x4782e7){return _0x3a217d[_0xd564('0x77')]?operators[_0x5380b5[_0xd564('0x71')]](_0x5380b5['value'],_0x3a217d[_0xd564('0x77')]):![];}break;case _0xd564('0x78'):return _0x3a217d['queue']?operators[_0x5380b5[_0xd564('0x71')]](_0x5380b5[_0xd564('0x72')],_0x3a217d[_0xd564('0x78')]):![];case _0xd564('0x79'):return _0x3a217d[_0xd564('0x7a')]?operators[_0x5380b5[_0xd564('0x71')]](_0x5380b5[_0xd564('0x72')],_0x3a217d['membername']):![];case _0xd564('0x7b'):return _0x3a217d[_0xd564('0x7b')]?operators[_0x5380b5['operator']](_0x5380b5[_0xd564('0x72')],_0x3a217d[_0xd564('0x7b')]):![];case _0xd564('0x7c'):return _0x3a217d[_0xd564('0x7c')]?operators[_0x5380b5[_0xd564('0x71')]](_0x5380b5['value'],_0x3a217d['routeId']):![];case'mailSubstatus':if(_0x5380b5[_0xd564('0x72')]===_0xd564('0x7d'))_0x5380b5['value']=null;return typeof _0x3a217d['substatus']!==_0xd564('0x36')?operators[_0x5380b5[_0xd564('0x71')]](_0x5380b5[_0xd564('0x72')],_0x3a217d[_0xd564('0x7e')]):![];case _0xd564('0x7f'):if(_0x3a217d['channel']===_0x4782e7){return _0x5380b5[_0xd564('0x72')]===_0xd564('0x80')&&_0x5380b5[_0xd564('0x71')]===_0xd564('0x81')?!![]:![];}break;}return![];};};module['exports']=Trigger;