33863776aec4e2a0432cae682cf3614f6df1fb57
[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 _0x4e85=['agents','voiceQueues','templates','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','deskAccounts','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialconnect','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:outgoingmessage','custom:acceptmessage','prototype','emit','info','stringify','clone','undefined','motionChannel','voice','inspect','checkTriggers','interface','status','checkTrigger','merge','length','Actions','action','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','data5','800','windowHeight','data6','winApplication','format','user:%s','name','trigger:%s:%s','toLowerCase','jscripty','trigger:%s','contactmanager','exec','integration','queue','voiceExtensions','routeId','urlforward','parse','query','replace','channel','AllConditions','checkConditions','some','AnyConditions','debug','evt','field','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','created','equals','exports','lodash','url','mustache','ioredis','./urlforward','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','popup','winapp','triggers'];(function(_0x2e85df,_0x3c512a){var _0x1c5a22=function(_0x54281c){while(--_0x54281c){_0x2e85df['push'](_0x2e85df['shift']());}};_0x1c5a22(++_0x3c512a);}(_0x4e85,0x16b));var _0x54e8=function(_0x513a84,_0x2a5b7f){_0x513a84=_0x513a84-0x0;var _0x7d206=_0x4e85[_0x513a84];return _0x7d206;};'use strict';var util=require('util');var _=require(_0x54e8('0x0'));var url=require(_0x54e8('0x1'));var Mustache=require(_0x54e8('0x2'));var Redis=require(_0x54e8('0x3'));var urlforward=require(_0x54e8('0x4'));var integration=require('./integration');var cmContact=require('./cmContact');var script=require(_0x54e8('0x5'));var config=require(_0x54e8('0x6'));var logger=require(_0x54e8('0x7'))('trigger');var ami=require(_0x54e8('0x8'));config[_0x54e8('0x9')]=_[_0x54e8('0xa')](config[_0x54e8('0x9')],{'host':_0x54e8('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x54e8('0x9')]));var operators={'equals':function(_0x52c3ce,_0x3b4cdb){return _0x52c3ce==_0x3b4cdb;},'not_equals':function(_0x5bd729,_0x42d4a5){return _0x5bd729!=_0x42d4a5;}};var barAndWebActions=[_0x54e8('0xc'),_0x54e8('0x1'),_0x54e8('0xd')];function Trigger(_0x20a053){this['triggers']=_0x20a053[_0x54e8('0xe')];this[_0x54e8('0xf')]=_0x20a053[_0x54e8('0xf')];this[_0x54e8('0x10')]=_0x20a053[_0x54e8('0x10')];this[_0x54e8('0x11')]=_0x20a053[_0x54e8('0x11')];this['voiceExtensions']=_0x20a053['voiceExtensions'];this['zendeskAccounts']=_0x20a053[_0x54e8('0x12')];this[_0x54e8('0x13')]=_0x20a053['freshdeskAccounts'];this[_0x54e8('0x14')]=_0x20a053[_0x54e8('0x14')];this[_0x54e8('0x15')]=_0x20a053['sugarcrmAccounts'];this[_0x54e8('0x16')]=_0x20a053[_0x54e8('0x16')];this['deskAccounts']=_0x20a053['deskAccounts'];this[_0x54e8('0x17')]=_0x20a053['vtigerAccounts'];this[_0x54e8('0x18')]=_0x20a053['servicenowAccounts'];this[_0x54e8('0x19')]=_0x20a053['dynamics365Accounts'];this[_0x54e8('0x1a')]=_0x20a053[_0x54e8('0x1a')];this[_0x54e8('0x1b')]={'zendesk':this[_0x54e8('0x12')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x54e8('0x13')],'sugarcrm':this[_0x54e8('0x15')],'zoho':this[_0x54e8('0x16')],'desk':this[_0x54e8('0x1c')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x54e8('0x19')],'freshsales':this[_0x54e8('0x1a')],'servicenow':this[_0x54e8('0x18')]};ami['on']('custom:agentcalled',this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on']('custom:agentconnect',this[_0x54e8('0x1d')]['bind'](this));ami['on'](_0x54e8('0x1f'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x20'),this['syncCustomEvent']['bind'](this));ami['on'](_0x54e8('0x21'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x22'),this['syncCustomEvent']['bind'](this));ami['on'](_0x54e8('0x23'),this[_0x54e8('0x1d')]['bind'](this));ami['on']('custom:agentcongestion',this['syncCustomEvent'][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x24'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x25'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x26'),this['syncCustomEvent'][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x27'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on']('custom:dialbegin',this['syncAgentDial'][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x28'),this[_0x54e8('0x29')]['bind'](this));ami['on'](_0x54e8('0x2a'),this[_0x54e8('0x29')]['bind'](this));ami['on'](_0x54e8('0x2b'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x2c'),this[_0x54e8('0x1d')]['bind'](this));ami['on'](_0x54e8('0x2d'),this['syncCustomEvent']['bind'](this));ami['on']('custom:incomingmessage',this['syncCustomEvent'][_0x54e8('0x1e')](this));ami['on'](_0x54e8('0x2e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x54e8('0x2f'),this[_0x54e8('0x1d')][_0x54e8('0x1e')](this));ami['on']('custom:rejectmessage',this[_0x54e8('0x1d')]['bind'](this));ami['on']('custom:offlineMessage',this['syncCustomEvent'][_0x54e8('0x1e')](this));}Trigger[_0x54e8('0x30')][_0x54e8('0x31')]=function(_0x4dd3e1,_0x17d634,_0x5d9ab0){logger[_0x54e8('0x32')](_0x4dd3e1,_0x17d634,JSON[_0x54e8('0x33')](_0x5d9ab0));io['to'](_0x4dd3e1)[_0x54e8('0x31')](_0x17d634,_0x5d9ab0);};Trigger[_0x54e8('0x30')]['syncCustomEvent']=function(_0x68713b){var _0x26b314=_[_0x54e8('0x34')](_0x68713b);if(typeof _0x26b314['motionChannel']===_0x54e8('0x35')){_0x26b314[_0x54e8('0x36')]=_0x54e8('0x37');}logger['debug']('syncCustomEvent',util[_0x54e8('0x38')](_0x26b314,{'showHidden':!![],'depth':null}));this[_0x54e8('0x39')](_0x26b314);};Trigger['prototype'][_0x54e8('0x29')]=function(_0x5275a3){if(this['agents'][_0x5275a3[_0x54e8('0x3a')]]){this[_0x54e8('0x1d')](_0x5275a3);}};Trigger[_0x54e8('0x30')][_0x54e8('0x39')]=function(_0x5f27c9){var _0x52b95d;for(var _0x412dfc in this['triggers']){if(this[_0x54e8('0xe')]['hasOwnProperty'](_0x412dfc)){if(this[_0x54e8('0xe')][_0x412dfc][_0x54e8('0x3b')]){_0x52b95d=this[_0x54e8('0x3c')](this[_0x54e8('0xe')][_0x412dfc],_0x5f27c9);if(_0x52b95d){_[_0x54e8('0x3d')](_0x5f27c9,_0x5f27c9['variables']);for(var _0xd41690=0x0,_0x25ce70,_0xbd22d9,_0x56219d;_0xd41690<this[_0x54e8('0xe')][_0x412dfc]['Actions'][_0x54e8('0x3e')];_0xd41690+=0x1){_0x25ce70=this[_0x54e8('0xe')][_0x412dfc][_0x54e8('0x3f')][_0xd41690];if(this[_0x54e8('0xf')][_0x5f27c9['interface']]){switch(_0x25ce70[_0x54e8('0x40')]['toLowerCase']()){case'contactmanager':break;case'motionbar':case _0x54e8('0x41'):var _0x12d827={};switch(barAndWebActions[_0x25ce70[_0x54e8('0x42')]]){case'popup':_0x12d827[_0x54e8('0x43')]=_0x25ce70[_0x54e8('0x44')];_0x12d827[_0x54e8('0x45')]=this[_0x54e8('0x11')][_0x25ce70[_0x54e8('0x44')]]?Mustache[_0x54e8('0x46')](this[_0x54e8('0x11')][_0x25ce70[_0x54e8('0x44')]][_0x54e8('0x45')],_0x5f27c9):_0x54e8('0x47');break;case _0x54e8('0x1'):_0x12d827[_0x54e8('0x48')]=this[_0x54e8('0x49')](_0x25ce70['data2'],_0x5f27c9,_[_0x54e8('0x4a')](_0x25ce70[_0x54e8('0x4b')])?!![]:parseInt(_0x25ce70[_0x54e8('0x4b')],0xa));if(_[_0x54e8('0x4a')](_0x25ce70[_0x54e8('0x4c')])){_0x12d827[_0x54e8('0x4d')]='0';}else{_0x12d827[_0x54e8('0x4e')]=_0x25ce70[_0x54e8('0x4c')];_0x12d827['windowWidth']=_['isNil'](_0x25ce70[_0x54e8('0x4f')])?_0x54e8('0x50'):_0x25ce70['data5'];_0x12d827[_0x54e8('0x51')]=_[_0x54e8('0x4a')](_0x25ce70[_0x54e8('0x52')])?'600':_0x25ce70['data6'];}break;case'winapp':_0x12d827[_0x54e8('0x53')]=_0x25ce70[_0x54e8('0x44')]?Mustache[_0x54e8('0x46')](_0x25ce70[_0x54e8('0x44')],_0x5f27c9):'';_0x12d827['winArguments']=_0x25ce70[_0x54e8('0x4b')]?Mustache['render'](_0x25ce70[_0x54e8('0x4b')],_0x5f27c9):'';break;}this[_0x54e8('0x31')](util[_0x54e8('0x54')](_0x54e8('0x55'),this[_0x54e8('0xf')][_0x5f27c9[_0x54e8('0x3a')]][_0x54e8('0x56')]),util[_0x54e8('0x54')](_0x54e8('0x57'),_0x25ce70[_0x54e8('0x40')][_0x54e8('0x58')](),barAndWebActions[_0x25ce70['data1']]),_['merge'](_0x12d827,_0x5f27c9));break;case _0x54e8('0x59'):this[_0x54e8('0x31')](util[_0x54e8('0x54')](_0x54e8('0x55'),this['agents'][_0x5f27c9[_0x54e8('0x3a')]]['name']),util[_0x54e8('0x54')](_0x54e8('0x5a'),_0x25ce70[_0x54e8('0x40')][_0x54e8('0x58')]()),_['merge']({'ProjectId':parseInt(_0x25ce70[_0x54e8('0x42')],0xa)},_0x5f27c9));break;default:this[_0x54e8('0x31')](util[_0x54e8('0x54')]('user:%s',this[_0x54e8('0xf')][_0x5f27c9['interface']][_0x54e8('0x56')]),util['format'](_0x54e8('0x5a'),_0x25ce70[_0x54e8('0x40')][_0x54e8('0x58')]()),_[_0x54e8('0x3d')]({},_0x25ce70,_0x5f27c9));}}switch(_0x25ce70[_0x54e8('0x40')][_0x54e8('0x58')]()){case _0x54e8('0x5b'):cmContact[_0x54e8('0x5c')](this[_0x54e8('0xf')][_0x5f27c9[_0x54e8('0x3a')]],this[_0x54e8('0xe')][_0x412dfc],_0x25ce70,_0x5f27c9);break;case _0x54e8('0x5d'):integration[_0x54e8('0x5c')](_0x25ce70,_0x5f27c9,this[_0x54e8('0x1b')],this[_0x54e8('0xf')][_0x5f27c9['interface']],this['voiceQueues'][_0x5f27c9[_0x54e8('0x5e')]],this[_0x54e8('0x5f')][_0x5f27c9[_0x54e8('0x60')]]);break;case _0x54e8('0x61'):urlforward[_0x54e8('0x5c')](_0x25ce70,_0x5f27c9);break;case'script':script['exec'](_0x25ce70,_0x5f27c9);break;}}}}}}};Trigger[_0x54e8('0x30')][_0x54e8('0x49')]=function(_0x4076a8,_0x2dea91,_0x131d73){var _0x41d890=url[_0x54e8('0x62')](Mustache[_0x54e8('0x46')](_0x4076a8,_0x2dea91),!![]);if(_0x131d73){_[_0x54e8('0x3d')](_0x41d890[_0x54e8('0x63')],_0x2dea91);}delete _0x41d890['search'];var _0x44a7ab=url[_0x54e8('0x54')](_0x41d890);_0x44a7ab=_0x44a7ab[_0x54e8('0x64')](/\/\?/g,'?');return _0x44a7ab;};Trigger[_0x54e8('0x30')][_0x54e8('0x3c')]=function(_0x370edb,_0x2b194d){var _0x2bc973=!![];var _0x20aef7=!![];var _0x42dfb2=![];if(_0x370edb[_0x54e8('0x65')]===_0x2b194d[_0x54e8('0x36')]){_0x42dfb2=!![];}if(_0x370edb[_0x54e8('0x66')][_0x54e8('0x3e')]){_0x2bc973=_['every'](_0x370edb['AllConditions'],this[_0x54e8('0x67')](_0x2b194d,_0x370edb[_0x54e8('0x65')]));}if(_0x370edb['AnyConditions'][_0x54e8('0x3e')]){_0x20aef7=_[_0x54e8('0x68')](_0x370edb[_0x54e8('0x69')],this[_0x54e8('0x67')](_0x2b194d,_0x370edb[_0x54e8('0x65')]));}var _0x40ac2c=_0x42dfb2&&_0x2bc973&&_0x20aef7;logger[_0x54e8('0x6a')]('checkTrigger:\x20trigger',util[_0x54e8('0x38')](_0x370edb,{'showHidden':!![],'depth':null}),_0x54e8('0x6b'),util[_0x54e8('0x38')](_0x2b194d,{'showHidden':!![],'depth':null}),_0x42dfb2,_0x2bc973,_0x20aef7);return _0x40ac2c;};Trigger[_0x54e8('0x30')][_0x54e8('0x67')]=function(_0x414786,_0x47a7f8){return function(_0xaf810e){switch(_0xaf810e[_0x54e8('0x6c')]){case'account':if(_0x414786[_0x54e8('0x65')]===_0x47a7f8){if(_0x47a7f8===_0x54e8('0x6d')){return _0x414786[_0x54e8('0x6e')]?operators[_0xaf810e[_0x54e8('0x6f')]](Number(_0xaf810e[_0x54e8('0x70')]),_0x414786[_0x54e8('0x6e')]):![];}else{return _0x414786[_[_0x54e8('0x71')](_0x47a7f8)+_0x54e8('0x72')]?operators[_0xaf810e[_0x54e8('0x6f')]](Number(_0xaf810e[_0x54e8('0x70')]),_0x414786[_[_0x54e8('0x71')](_0x47a7f8)+_0x54e8('0x72')]):![];}}break;case'interaction':case _0x54e8('0x73'):if(_0x414786[_0x54e8('0x65')]===_0x47a7f8){return _0x414786[_0x54e8('0x74')]?operators[_0xaf810e[_0x54e8('0x6f')]](_0xaf810e[_0x54e8('0x70')],_0x414786[_0x54e8('0x74')]):![];}break;case _0x54e8('0x5e'):return _0x414786['queue']?operators[_0xaf810e[_0x54e8('0x6f')]](_0xaf810e[_0x54e8('0x70')],_0x414786[_0x54e8('0x5e')]):![];case'agent':return _0x414786['membername']?operators[_0xaf810e[_0x54e8('0x6f')]](_0xaf810e[_0x54e8('0x70')],_0x414786[_0x54e8('0x75')]):![];case _0x54e8('0x76'):return _0x414786['lastevent']?operators[_0xaf810e[_0x54e8('0x6f')]](_0xaf810e[_0x54e8('0x70')],_0x414786[_0x54e8('0x76')]):![];case _0x54e8('0x60'):return _0x414786[_0x54e8('0x60')]?operators[_0xaf810e['operator']](_0xaf810e[_0x54e8('0x70')],_0x414786[_0x54e8('0x60')]):![];case _0x54e8('0x77'):if(_0xaf810e['value']===_0x54e8('0x78'))_0xaf810e[_0x54e8('0x70')]=null;return typeof _0x414786[_0x54e8('0x79')]!==_0x54e8('0x35')?operators[_0xaf810e[_0x54e8('0x6f')]](_0xaf810e['value'],_0x414786[_0x54e8('0x79')]):![];case _0x54e8('0x7a'):if(_0x414786['channel']===_0x47a7f8){return _0xaf810e[_0x54e8('0x70')]===_0x54e8('0x7b')&&_0xaf810e['operator']===_0x54e8('0x7c')?!![]:![];}break;}return![];};};module[_0x54e8('0x7d')]=Trigger;