f13ea6920565ecb2411e6c0dfbb938c278dc480d
[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 _0xb0d2=['operator','interaction','event','agent','membername','lastevent','exports','util','lodash','url','mustache','ioredis','./urlforward','./cmContact','../../../config/environment','../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:timeout','custom:dialbegin','custom:dialconnect','custom:dialend','syncAgentDial','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','hasOwnProperty','status','merge','variables','Actions','action','toLowerCase','contactmanager','motionbar','browser','TemplateId','data2','html','template\x20not\x20found','data3','location','uriLocation','data4','windowWidth','isNil','800','data6','winApplication','render','user:%s','name','format','trigger:%s:%s','data1','trigger:%s','exec','integration','queue','routeId','urlforward','buildUri','parse','query','search','checkTrigger','AllConditions','every','checkConditions','channel','AnyConditions','length','some','field','account','ChatWebsiteId','value','upperFirst','AccountId'];(function(_0x53d3f2,_0x5a0a1c){var _0x15ec92=function(_0x1cfe8d){while(--_0x1cfe8d){_0x53d3f2['push'](_0x53d3f2['shift']());}};_0x15ec92(++_0x5a0a1c);}(_0xb0d2,0x1cf));var _0x2b0d=function(_0x5c6a27,_0x388501){_0x5c6a27=_0x5c6a27-0x0;var _0x155424=_0xb0d2[_0x5c6a27];return _0x155424;};'use strict';var util=require(_0x2b0d('0x0'));var _=require(_0x2b0d('0x1'));var url=require(_0x2b0d('0x2'));var Mustache=require(_0x2b0d('0x3'));var Redis=require(_0x2b0d('0x4'));var urlforward=require(_0x2b0d('0x5'));var integration=require('./integration');var cmContact=require(_0x2b0d('0x6'));var script=require('./script');var config=require(_0x2b0d('0x7'));var logger=require(_0x2b0d('0x8'))(_0x2b0d('0x9'));var ami=require('../ami');config[_0x2b0d('0xa')]=_[_0x2b0d('0xb')](config['redis'],{'host':_0x2b0d('0xc'),'port':0x18eb});var io=require(_0x2b0d('0xd'))(new Redis(config['redis']));var operators={'equals':function(_0x32197,_0x146b39){return _0x32197==_0x146b39;},'not_equals':function(_0x5b1b90,_0x1621d8){return _0x5b1b90!=_0x1621d8;}};var barAndWebActions=[_0x2b0d('0xe'),_0x2b0d('0x2'),_0x2b0d('0xf')];function Trigger(_0xea8ef3){this[_0x2b0d('0x10')]=_0xea8ef3[_0x2b0d('0x10')];this[_0x2b0d('0x11')]=_0xea8ef3[_0x2b0d('0x11')];this[_0x2b0d('0x12')]=_0xea8ef3[_0x2b0d('0x12')];this[_0x2b0d('0x13')]=_0xea8ef3[_0x2b0d('0x13')];this['voiceExtensions']=_0xea8ef3[_0x2b0d('0x14')];this['zendeskAccounts']=_0xea8ef3[_0x2b0d('0x15')];this[_0x2b0d('0x16')]=_0xea8ef3[_0x2b0d('0x16')];this[_0x2b0d('0x17')]=_0xea8ef3[_0x2b0d('0x17')];this[_0x2b0d('0x18')]=_0xea8ef3['sugarcrmAccounts'];this[_0x2b0d('0x19')]=_0xea8ef3[_0x2b0d('0x19')];this[_0x2b0d('0x1a')]=_0xea8ef3[_0x2b0d('0x1a')];this['vtigerAccounts']=_0xea8ef3['vtigerAccounts'];this[_0x2b0d('0x1b')]=_0xea8ef3[_0x2b0d('0x1b')];this[_0x2b0d('0x1c')]=_0xea8ef3[_0x2b0d('0x1c')];this['freshsalesAccounts']=_0xea8ef3[_0x2b0d('0x1d')];this[_0x2b0d('0x1e')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x2b0d('0x17')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x2b0d('0x18')],'zoho':this[_0x2b0d('0x19')],'desk':this['deskAccounts'],'vtiger':this[_0x2b0d('0x1f')],'dynamics365':this[_0x2b0d('0x1c')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0x2b0d('0x20'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:agentconnect',this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:agentringnoanswer',this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:agentcomplete',this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x23'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x24'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:agentbusy',this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x25'),this['syncCustomEvent'][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x26'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:queuecallerabandon',this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x27'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x28'),this['syncAgentDial']['bind'](this));ami['on'](_0x2b0d('0x29'),this['syncAgentDial'][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x2a'),this[_0x2b0d('0x2b')][_0x2b0d('0x22')](this));ami['on']('custom:newinteraction',this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:closedinteraction',this['syncCustomEvent'][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x2c'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent'][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x2d'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));ami['on'](_0x2b0d('0x2e'),this[_0x2b0d('0x21')][_0x2b0d('0x22')](this));}Trigger[_0x2b0d('0x2f')][_0x2b0d('0x30')]=function(_0x5b4add,_0x4aebeb,_0x19af1f){logger[_0x2b0d('0x31')](_0x5b4add,_0x4aebeb,JSON[_0x2b0d('0x32')](_0x19af1f));io['to'](_0x5b4add)['emit'](_0x4aebeb,_0x19af1f);};Trigger[_0x2b0d('0x2f')][_0x2b0d('0x21')]=function(_0x427b79){var _0x144d1f=_[_0x2b0d('0x33')](_0x427b79);this[_0x2b0d('0x34')](_0x144d1f);};Trigger[_0x2b0d('0x2f')][_0x2b0d('0x2b')]=function(_0x2c77b8){if(this[_0x2b0d('0x11')][_0x2c77b8[_0x2b0d('0x35')]]){this['syncCustomEvent'](_0x2c77b8);}};Trigger['prototype'][_0x2b0d('0x34')]=function(_0x1a0d0f){var _0x15d28a;for(var _0x1c655a in this['triggers']){if(this[_0x2b0d('0x10')][_0x2b0d('0x36')](_0x1c655a)){if(this[_0x2b0d('0x10')][_0x1c655a][_0x2b0d('0x37')]){_0x15d28a=this['checkTrigger'](this[_0x2b0d('0x10')][_0x1c655a],_0x1a0d0f);if(_0x15d28a){_[_0x2b0d('0x38')](_0x1a0d0f,_0x1a0d0f[_0x2b0d('0x39')]);for(var _0xe8c340=0x0,_0x168be4,_0x1481d9,_0x45fb38;_0xe8c340<this[_0x2b0d('0x10')][_0x1c655a]['Actions']['length'];_0xe8c340+=0x1){_0x168be4=this[_0x2b0d('0x10')][_0x1c655a][_0x2b0d('0x3a')][_0xe8c340];if(this['agents'][_0x1a0d0f[_0x2b0d('0x35')]]){switch(_0x168be4[_0x2b0d('0x3b')][_0x2b0d('0x3c')]()){case _0x2b0d('0x3d'):break;case _0x2b0d('0x3e'):case _0x2b0d('0x3f'):var _0x104d77={};switch(barAndWebActions[_0x168be4['data1']]){case _0x2b0d('0xe'):_0x104d77[_0x2b0d('0x40')]=_0x168be4[_0x2b0d('0x41')];_0x104d77[_0x2b0d('0x42')]=this[_0x2b0d('0x13')][_0x168be4[_0x2b0d('0x41')]]?Mustache['render'](this[_0x2b0d('0x13')][_0x168be4[_0x2b0d('0x41')]]['html'],_0x1a0d0f):_0x2b0d('0x43');break;case _0x2b0d('0x2'):_0x104d77['uri']=this['buildUri'](_0x168be4['data2'],_0x1a0d0f,_['isNil'](_0x168be4[_0x2b0d('0x44')])?!![]:parseInt(_0x168be4[_0x2b0d('0x44')],0xa));if(_['isNil'](_0x168be4['data4'])){_0x104d77[_0x2b0d('0x45')]='0';}else{_0x104d77[_0x2b0d('0x46')]=_0x168be4[_0x2b0d('0x47')];_0x104d77[_0x2b0d('0x48')]=_[_0x2b0d('0x49')](_0x168be4['data5'])?_0x2b0d('0x4a'):_0x168be4['data5'];_0x104d77['windowHeight']=_['isNil'](_0x168be4['data6'])?'600':_0x168be4[_0x2b0d('0x4b')];}break;case'winapp':_0x104d77[_0x2b0d('0x4c')]=_0x168be4[_0x2b0d('0x41')]?Mustache[_0x2b0d('0x4d')](_0x168be4[_0x2b0d('0x41')],_0x1a0d0f):'';_0x104d77['winArguments']=_0x168be4[_0x2b0d('0x44')]?Mustache[_0x2b0d('0x4d')](_0x168be4['data3'],_0x1a0d0f):'';break;}this[_0x2b0d('0x30')](util['format'](_0x2b0d('0x4e'),this['agents'][_0x1a0d0f[_0x2b0d('0x35')]][_0x2b0d('0x4f')]),util[_0x2b0d('0x50')](_0x2b0d('0x51'),_0x168be4[_0x2b0d('0x3b')][_0x2b0d('0x3c')](),barAndWebActions[_0x168be4[_0x2b0d('0x52')]]),_[_0x2b0d('0x38')](_0x104d77,_0x1a0d0f));break;case'jscripty':this['emit'](util[_0x2b0d('0x50')](_0x2b0d('0x4e'),this[_0x2b0d('0x11')][_0x1a0d0f[_0x2b0d('0x35')]][_0x2b0d('0x4f')]),util[_0x2b0d('0x50')]('trigger:%s',_0x168be4[_0x2b0d('0x3b')]['toLowerCase']()),_[_0x2b0d('0x38')]({'ProjectId':parseInt(_0x168be4[_0x2b0d('0x52')],0xa)},_0x1a0d0f));break;default:this[_0x2b0d('0x30')](util[_0x2b0d('0x50')]('user:%s',this[_0x2b0d('0x11')][_0x1a0d0f[_0x2b0d('0x35')]][_0x2b0d('0x4f')]),util[_0x2b0d('0x50')](_0x2b0d('0x53'),_0x168be4['action'][_0x2b0d('0x3c')]()),_['merge']({},_0x168be4,_0x1a0d0f));}}switch(_0x168be4[_0x2b0d('0x3b')][_0x2b0d('0x3c')]()){case _0x2b0d('0x3d'):cmContact[_0x2b0d('0x54')](this['agents'][_0x1a0d0f['interface']],this[_0x2b0d('0x10')][_0x1c655a],_0x168be4,_0x1a0d0f);break;case _0x2b0d('0x55'):integration[_0x2b0d('0x54')](_0x168be4,_0x1a0d0f,this['accounts'],this['agents'][_0x1a0d0f[_0x2b0d('0x35')]],this[_0x2b0d('0x12')][_0x1a0d0f[_0x2b0d('0x56')]],this[_0x2b0d('0x14')][_0x1a0d0f[_0x2b0d('0x57')]]);break;case _0x2b0d('0x58'):urlforward[_0x2b0d('0x54')](_0x168be4,_0x1a0d0f);break;case'script':script[_0x2b0d('0x54')](_0x168be4,_0x1a0d0f);break;}}}}}}};Trigger['prototype'][_0x2b0d('0x59')]=function(_0xf93b8c,_0x360411,_0x2bd20d){var _0x46cd48=url[_0x2b0d('0x5a')](Mustache[_0x2b0d('0x4d')](_0xf93b8c,_0x360411),!![]);if(_0x2bd20d){_[_0x2b0d('0x38')](_0x46cd48[_0x2b0d('0x5b')],_0x360411);}delete _0x46cd48[_0x2b0d('0x5c')];var _0x470aa8=url['format'](_0x46cd48);_0x470aa8=_0x470aa8['replace'](/\/\?/g,'?');return _0x470aa8;};Trigger[_0x2b0d('0x2f')][_0x2b0d('0x5d')]=function(_0x8a82c6,_0x3f7363){var _0x385ab5=!![],_0xae51b8=!![];if(_0x8a82c6[_0x2b0d('0x5e')]['length']){_0x385ab5=_[_0x2b0d('0x5f')](_0x8a82c6[_0x2b0d('0x5e')],this[_0x2b0d('0x60')](_0x3f7363,_0x8a82c6[_0x2b0d('0x61')]));}if(_0x8a82c6[_0x2b0d('0x62')][_0x2b0d('0x63')]){_0xae51b8=_[_0x2b0d('0x64')](_0x8a82c6['AnyConditions'],this[_0x2b0d('0x60')](_0x3f7363,_0x8a82c6[_0x2b0d('0x61')]));}return _0x385ab5&&_0xae51b8;};Trigger['prototype']['checkConditions']=function(_0x54f3e4,_0x23ba1f){return function(_0x20cd29){switch(_0x20cd29[_0x2b0d('0x65')]){case _0x2b0d('0x66'):if(_0x54f3e4[_0x2b0d('0x61')]===_0x23ba1f){if(_0x23ba1f==='chat'){return _0x54f3e4[_0x2b0d('0x67')]?operators[_0x20cd29['operator']](Number(_0x20cd29[_0x2b0d('0x68')]),_0x54f3e4['ChatWebsiteId']):![];}else{return _0x54f3e4[_[_0x2b0d('0x69')](_0x23ba1f)+_0x2b0d('0x6a')]?operators[_0x20cd29[_0x2b0d('0x6b')]](Number(_0x20cd29[_0x2b0d('0x68')]),_0x54f3e4[_[_0x2b0d('0x69')](_0x23ba1f)+_0x2b0d('0x6a')]):![];}}break;case _0x2b0d('0x6c'):case'message':if(_0x54f3e4[_0x2b0d('0x61')]===_0x23ba1f){return _0x54f3e4[_0x2b0d('0x6d')]?operators[_0x20cd29[_0x2b0d('0x6b')]](_0x20cd29[_0x2b0d('0x68')],_0x54f3e4[_0x2b0d('0x6d')]):![];}break;case'queue':return _0x54f3e4['queue']?operators[_0x20cd29[_0x2b0d('0x6b')]](_0x20cd29[_0x2b0d('0x68')],_0x54f3e4['queue']):![];case _0x2b0d('0x6e'):return _0x54f3e4[_0x2b0d('0x6f')]?operators[_0x20cd29[_0x2b0d('0x6b')]](_0x20cd29['value'],_0x54f3e4[_0x2b0d('0x6f')]):![];case _0x2b0d('0x70'):return _0x54f3e4[_0x2b0d('0x70')]?operators[_0x20cd29['operator']](_0x20cd29[_0x2b0d('0x68')],_0x54f3e4[_0x2b0d('0x70')]):![];case _0x2b0d('0x57'):return _0x54f3e4[_0x2b0d('0x57')]?operators[_0x20cd29[_0x2b0d('0x6b')]](_0x20cd29[_0x2b0d('0x68')],_0x54f3e4[_0x2b0d('0x57')]):![];}return![];};};module[_0x2b0d('0x71')]=Trigger;