9caebf7597b97743ebd28dcd8edccbb6aec3d272
[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 _0x2432=['../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','deskAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:amd','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','info','stringify','clone','motionChannel','undefined','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','Actions','length','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','data3','isNil','data4','location','uriLocation','data5','800','windowHeight','data6','600','winApplication','winArguments','emit','user:%s','format','trigger:%s:%s','action','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','buildUri','query','replace','channel','AllConditions','every','checkConditions','AnyConditions','some','field','account','chat','ChatWebsiteId','operator','AccountId','interaction','message','event','value','membername','lastevent','mailSubstatus','substatus','offlineMessage','created','equals','exports','util','lodash','url','mustache','./urlforward','./cmContact','./script'];(function(_0x2dfb32,_0x413e3e){var _0x3261cd=function(_0x13e503){while(--_0x13e503){_0x2dfb32['push'](_0x2dfb32['shift']());}};_0x3261cd(++_0x413e3e);}(_0x2432,0x7a));var _0x2243=function(_0xdfeb79,_0x71f667){_0xdfeb79=_0xdfeb79-0x0;var _0x568fea=_0x2432[_0xdfeb79];return _0x568fea;};'use strict';var util=require(_0x2243('0x0'));var _=require(_0x2243('0x1'));var url=require(_0x2243('0x2'));var Mustache=require(_0x2243('0x3'));var Redis=require('ioredis');var urlforward=require(_0x2243('0x4'));var integration=require('./integration');var cmContact=require(_0x2243('0x5'));var script=require(_0x2243('0x6'));var config=require(_0x2243('0x7'));var logger=require(_0x2243('0x8'))(_0x2243('0x9'));var ami=require(_0x2243('0xa'));config[_0x2243('0xb')]=_[_0x2243('0xc')](config[_0x2243('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0x2243('0xd'))(new Redis(config[_0x2243('0xb')]));var operators={'equals':function(_0x9a4bf4,_0x31597f){return _0x9a4bf4==_0x31597f;},'not_equals':function(_0x31a479,_0x3cf586){return _0x31a479!=_0x3cf586;}};var barAndWebActions=[_0x2243('0xe'),_0x2243('0x2'),_0x2243('0xf')];function Trigger(_0x2456b2){this[_0x2243('0x10')]=_0x2456b2[_0x2243('0x10')];this[_0x2243('0x11')]=_0x2456b2[_0x2243('0x11')];this[_0x2243('0x12')]=_0x2456b2[_0x2243('0x12')];this['templates']=_0x2456b2[_0x2243('0x13')];this[_0x2243('0x14')]=_0x2456b2[_0x2243('0x14')];this[_0x2243('0x15')]=_0x2456b2['zendeskAccounts'];this[_0x2243('0x16')]=_0x2456b2['freshdeskAccounts'];this[_0x2243('0x17')]=_0x2456b2['salesforceAccounts'];this[_0x2243('0x18')]=_0x2456b2[_0x2243('0x18')];this[_0x2243('0x19')]=_0x2456b2[_0x2243('0x19')];this['deskAccounts']=_0x2456b2['deskAccounts'];this[_0x2243('0x1a')]=_0x2456b2[_0x2243('0x1a')];this[_0x2243('0x1b')]=_0x2456b2[_0x2243('0x1b')];this[_0x2243('0x1c')]=_0x2456b2[_0x2243('0x1c')];this[_0x2243('0x1d')]=_0x2456b2[_0x2243('0x1d')];this[_0x2243('0x1e')]={'zendesk':this[_0x2243('0x15')],'salesforce':this[_0x2243('0x17')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x2243('0x18')],'zoho':this[_0x2243('0x19')],'desk':this[_0x2243('0x1f')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x2243('0x1c')],'freshsales':this[_0x2243('0x1d')],'servicenow':this[_0x2243('0x1b')]};ami['on'](_0x2243('0x20'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on']('custom:agentconnect',this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x23'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x24'),this['syncCustomEvent'][_0x2243('0x22')](this));ami['on'](_0x2243('0x25'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x26'),this['syncCustomEvent'][_0x2243('0x22')](this));ami['on']('custom:agentbusy',this['syncCustomEvent'][_0x2243('0x22')](this));ami['on'](_0x2243('0x27'),this['syncCustomEvent'][_0x2243('0x22')](this));ami['on'](_0x2243('0x28'),this['syncCustomEvent'][_0x2243('0x22')](this));ami['on'](_0x2243('0x29'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on']('custom:queuecallerabandon',this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x2a'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x2b'),this[_0x2243('0x2c')][_0x2243('0x22')](this));ami['on'](_0x2243('0x2d'),this['syncAgentDial'][_0x2243('0x22')](this));ami['on']('custom:dialend',this['syncAgentDial'][_0x2243('0x22')](this));ami['on'](_0x2243('0x2e'),this[_0x2243('0x21')]['bind'](this));ami['on'](_0x2243('0x2f'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on']('custom:substatus',this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x30'),this['syncCustomEvent']['bind'](this));ami['on'](_0x2243('0x31'),this[_0x2243('0x21')][_0x2243('0x22')](this));ami['on'](_0x2243('0x32'),this['syncCustomEvent'][_0x2243('0x22')](this));ami['on'](_0x2243('0x33'),this[_0x2243('0x21')]['bind'](this));ami['on'](_0x2243('0x34'),this[_0x2243('0x21')][_0x2243('0x22')](this));}Trigger[_0x2243('0x35')]['emit']=function(_0xad410e,_0x19dcfe,_0x1e434d){logger[_0x2243('0x36')](_0xad410e,_0x19dcfe,JSON[_0x2243('0x37')](_0x1e434d));io['to'](_0xad410e)['emit'](_0x19dcfe,_0x1e434d);};Trigger[_0x2243('0x35')][_0x2243('0x21')]=function(_0x12d487){var _0x3573da=_[_0x2243('0x38')](_0x12d487);if(typeof _0x3573da[_0x2243('0x39')]===_0x2243('0x3a')){_0x3573da[_0x2243('0x39')]=_0x2243('0x3b');}this[_0x2243('0x3c')](_0x3573da);};Trigger['prototype'][_0x2243('0x2c')]=function(_0x518626){if(this[_0x2243('0x11')][_0x518626[_0x2243('0x3d')]]){this[_0x2243('0x21')](_0x518626);}};Trigger['prototype']['checkTriggers']=function(_0x2fb7ec){var _0x3b8406;for(var _0x42f258 in this[_0x2243('0x10')]){if(this[_0x2243('0x10')][_0x2243('0x3e')](_0x42f258)){if(this[_0x2243('0x10')][_0x42f258][_0x2243('0x3f')]){_0x3b8406=this[_0x2243('0x40')](this[_0x2243('0x10')][_0x42f258],_0x2fb7ec);if(_0x3b8406){_[_0x2243('0x41')](_0x2fb7ec,_0x2fb7ec['variables']);for(var _0x9a9142=0x0,_0x2d8b8b,_0x4be1aa,_0x390263;_0x9a9142<this['triggers'][_0x42f258][_0x2243('0x42')][_0x2243('0x43')];_0x9a9142+=0x1){_0x2d8b8b=this[_0x2243('0x10')][_0x42f258][_0x2243('0x42')][_0x9a9142];if(this[_0x2243('0x11')][_0x2fb7ec[_0x2243('0x3d')]]){switch(_0x2d8b8b['action'][_0x2243('0x44')]()){case _0x2243('0x45'):break;case _0x2243('0x46'):case _0x2243('0x47'):var _0x2e7194={};switch(barAndWebActions[_0x2d8b8b[_0x2243('0x48')]]){case'popup':_0x2e7194[_0x2243('0x49')]=_0x2d8b8b[_0x2243('0x4a')];_0x2e7194[_0x2243('0x4b')]=this[_0x2243('0x13')][_0x2d8b8b['data2']]?Mustache[_0x2243('0x4c')](this['templates'][_0x2d8b8b[_0x2243('0x4a')]][_0x2243('0x4b')],_0x2fb7ec):'template\x20not\x20found';break;case'url':_0x2e7194['uri']=this['buildUri'](_0x2d8b8b[_0x2243('0x4a')],_0x2fb7ec,_['isNil'](_0x2d8b8b[_0x2243('0x4d')])?!![]:parseInt(_0x2d8b8b[_0x2243('0x4d')],0xa));if(_[_0x2243('0x4e')](_0x2d8b8b[_0x2243('0x4f')])){_0x2e7194[_0x2243('0x50')]='0';}else{_0x2e7194[_0x2243('0x51')]=_0x2d8b8b[_0x2243('0x4f')];_0x2e7194['windowWidth']=_[_0x2243('0x4e')](_0x2d8b8b[_0x2243('0x52')])?_0x2243('0x53'):_0x2d8b8b['data5'];_0x2e7194[_0x2243('0x54')]=_[_0x2243('0x4e')](_0x2d8b8b[_0x2243('0x55')])?_0x2243('0x56'):_0x2d8b8b[_0x2243('0x55')];}break;case _0x2243('0xf'):_0x2e7194[_0x2243('0x57')]=_0x2d8b8b[_0x2243('0x4a')]?Mustache[_0x2243('0x4c')](_0x2d8b8b[_0x2243('0x4a')],_0x2fb7ec):'';_0x2e7194[_0x2243('0x58')]=_0x2d8b8b['data3']?Mustache[_0x2243('0x4c')](_0x2d8b8b['data3'],_0x2fb7ec):'';break;}this[_0x2243('0x59')](util['format'](_0x2243('0x5a'),this[_0x2243('0x11')][_0x2fb7ec['interface']]['name']),util[_0x2243('0x5b')](_0x2243('0x5c'),_0x2d8b8b[_0x2243('0x5d')]['toLowerCase'](),barAndWebActions[_0x2d8b8b[_0x2243('0x48')]]),_[_0x2243('0x41')](_0x2e7194,_0x2fb7ec));break;case'jscripty':this[_0x2243('0x59')](util['format'](_0x2243('0x5a'),this['agents'][_0x2fb7ec['interface']][_0x2243('0x5e')]),util['format'](_0x2243('0x5f'),_0x2d8b8b[_0x2243('0x5d')][_0x2243('0x44')]()),_[_0x2243('0x41')]({'ProjectId':parseInt(_0x2d8b8b['data1'],0xa)},_0x2fb7ec));break;default:this[_0x2243('0x59')](util[_0x2243('0x5b')](_0x2243('0x5a'),this['agents'][_0x2fb7ec[_0x2243('0x3d')]][_0x2243('0x5e')]),util[_0x2243('0x5b')](_0x2243('0x5f'),_0x2d8b8b[_0x2243('0x5d')][_0x2243('0x44')]()),_['merge']({},_0x2d8b8b,_0x2fb7ec));}}switch(_0x2d8b8b[_0x2243('0x5d')][_0x2243('0x44')]()){case _0x2243('0x45'):cmContact[_0x2243('0x60')](this[_0x2243('0x11')][_0x2fb7ec['interface']],this[_0x2243('0x10')][_0x42f258],_0x2d8b8b,_0x2fb7ec);break;case _0x2243('0x61'):integration[_0x2243('0x60')](_0x2d8b8b,_0x2fb7ec,this['accounts'],this[_0x2243('0x11')][_0x2fb7ec[_0x2243('0x3d')]],this[_0x2243('0x12')][_0x2fb7ec[_0x2243('0x62')]],this[_0x2243('0x14')][_0x2fb7ec[_0x2243('0x63')]]);break;case _0x2243('0x64'):urlforward[_0x2243('0x60')](_0x2d8b8b,_0x2fb7ec);break;case _0x2243('0x65'):script[_0x2243('0x60')](_0x2d8b8b,_0x2fb7ec);break;}}}}}}};Trigger['prototype'][_0x2243('0x66')]=function(_0x2ccf3e,_0x4827b3,_0x4c5e63){var _0x32ffe3=url['parse'](Mustache[_0x2243('0x4c')](_0x2ccf3e,_0x4827b3),!![]);if(_0x4c5e63){_['merge'](_0x32ffe3[_0x2243('0x67')],_0x4827b3);}delete _0x32ffe3['search'];var _0x44feb0=url[_0x2243('0x5b')](_0x32ffe3);_0x44feb0=_0x44feb0[_0x2243('0x68')](/\/\?/g,'?');return _0x44feb0;};Trigger[_0x2243('0x35')][_0x2243('0x40')]=function(_0x219ae2,_0x59d1a2){var _0x282648=!![];var _0x17c6b1=!![];var _0x5aa5eb=![];if(_0x219ae2[_0x2243('0x69')]===_0x59d1a2[_0x2243('0x39')]){_0x5aa5eb=!![];}if(_0x219ae2[_0x2243('0x6a')][_0x2243('0x43')]){_0x282648=_[_0x2243('0x6b')](_0x219ae2[_0x2243('0x6a')],this[_0x2243('0x6c')](_0x59d1a2,_0x219ae2['channel']));}if(_0x219ae2[_0x2243('0x6d')][_0x2243('0x43')]){_0x17c6b1=_[_0x2243('0x6e')](_0x219ae2['AnyConditions'],this[_0x2243('0x6c')](_0x59d1a2,_0x219ae2[_0x2243('0x69')]));}return _0x5aa5eb&&_0x282648&&_0x17c6b1;};Trigger[_0x2243('0x35')][_0x2243('0x6c')]=function(_0x4976ae,_0x433dbd){return function(_0x1eccc8){switch(_0x1eccc8[_0x2243('0x6f')]){case _0x2243('0x70'):if(_0x4976ae[_0x2243('0x69')]===_0x433dbd){if(_0x433dbd===_0x2243('0x71')){return _0x4976ae[_0x2243('0x72')]?operators[_0x1eccc8[_0x2243('0x73')]](Number(_0x1eccc8['value']),_0x4976ae[_0x2243('0x72')]):![];}else{return _0x4976ae[_['upperFirst'](_0x433dbd)+'AccountId']?operators[_0x1eccc8[_0x2243('0x73')]](Number(_0x1eccc8['value']),_0x4976ae[_['upperFirst'](_0x433dbd)+_0x2243('0x74')]):![];}}break;case _0x2243('0x75'):case _0x2243('0x76'):if(_0x4976ae[_0x2243('0x69')]===_0x433dbd){return _0x4976ae[_0x2243('0x77')]?operators[_0x1eccc8[_0x2243('0x73')]](_0x1eccc8[_0x2243('0x78')],_0x4976ae[_0x2243('0x77')]):![];}break;case _0x2243('0x62'):return _0x4976ae['queue']?operators[_0x1eccc8[_0x2243('0x73')]](_0x1eccc8[_0x2243('0x78')],_0x4976ae[_0x2243('0x62')]):![];case'agent':return _0x4976ae[_0x2243('0x79')]?operators[_0x1eccc8[_0x2243('0x73')]](_0x1eccc8['value'],_0x4976ae['membername']):![];case _0x2243('0x7a'):return _0x4976ae[_0x2243('0x7a')]?operators[_0x1eccc8[_0x2243('0x73')]](_0x1eccc8[_0x2243('0x78')],_0x4976ae['lastevent']):![];case'routeId':return _0x4976ae['routeId']?operators[_0x1eccc8[_0x2243('0x73')]](_0x1eccc8['value'],_0x4976ae[_0x2243('0x63')]):![];case _0x2243('0x7b'):if(_0x1eccc8[_0x2243('0x78')]==='null')_0x1eccc8[_0x2243('0x78')]=null;return typeof _0x4976ae[_0x2243('0x7c')]!==_0x2243('0x3a')?operators[_0x1eccc8[_0x2243('0x73')]](_0x1eccc8[_0x2243('0x78')],_0x4976ae[_0x2243('0x7c')]):![];case _0x2243('0x7d'):if(_0x4976ae[_0x2243('0x69')]===_0x433dbd){return _0x1eccc8['value']===_0x2243('0x7e')&&_0x1eccc8[_0x2243('0x73')]===_0x2243('0x7f')?!![]:![];}break;}return![];};};module[_0x2243('0x80')]=Trigger;