6bab0879b0ff6b9d1dd639522c8994e0fb2fe25e
[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 _0xd769=['exec','urlforward','buildUri','replace','checkTrigger','channel','checkConditions','AnyConditions','some','evt','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','event','queue','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','undefined','offlineMessage','equals','exports','util','lodash','url','ioredis','./urlforward','./integration','./script','../../../config/environment','../../../config/logger','trigger','redis','socket.io-emitter','popup','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialconnect','custom:dialend','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','voice','debug','inspect','checkTriggers','hasOwnProperty','status','merge','variables','Actions','length','interface','action','toLowerCase','contactmanager','browser','data1','TemplateId','data2','render','html','template\x20not\x20found','isNil','data3','uriLocation','data4','windowWidth','data5','windowHeight','data6','winApplication','winArguments','format','user:%s','trigger:%s:%s','jscripty','trigger:%s','name'];(function(_0x1dad70,_0x156649){var _0x14771d=function(_0x4186d5){while(--_0x4186d5){_0x1dad70['push'](_0x1dad70['shift']());}};_0x14771d(++_0x156649);}(_0xd769,0x19a));var _0x9d76=function(_0x48eb69,_0x515965){_0x48eb69=_0x48eb69-0x0;var _0x24861f=_0xd769[_0x48eb69];return _0x24861f;};'use strict';var util=require(_0x9d76('0x0'));var _=require(_0x9d76('0x1'));var url=require(_0x9d76('0x2'));var Mustache=require('mustache');var Redis=require(_0x9d76('0x3'));var urlforward=require(_0x9d76('0x4'));var integration=require(_0x9d76('0x5'));var cmContact=require('./cmContact');var script=require(_0x9d76('0x6'));var config=require(_0x9d76('0x7'));var logger=require(_0x9d76('0x8'))(_0x9d76('0x9'));var ami=require('../ami');config[_0x9d76('0xa')]=_['defaults'](config[_0x9d76('0xa')],{'host':'localhost','port':0x18eb});var io=require(_0x9d76('0xb'))(new Redis(config['redis']));var operators={'equals':function(_0x284910,_0x3b27f4){return _0x284910==_0x3b27f4;},'not_equals':function(_0x1b50b5,_0x5c2e61){return _0x1b50b5!=_0x5c2e61;}};var barAndWebActions=[_0x9d76('0xc'),_0x9d76('0x2'),'winapp'];function Trigger(_0x472486){this[_0x9d76('0xd')]=_0x472486[_0x9d76('0xd')];this[_0x9d76('0xe')]=_0x472486[_0x9d76('0xe')];this[_0x9d76('0xf')]=_0x472486[_0x9d76('0xf')];this[_0x9d76('0x10')]=_0x472486[_0x9d76('0x10')];this[_0x9d76('0x11')]=_0x472486[_0x9d76('0x11')];this[_0x9d76('0x12')]=_0x472486[_0x9d76('0x12')];this[_0x9d76('0x13')]=_0x472486[_0x9d76('0x13')];this[_0x9d76('0x14')]=_0x472486[_0x9d76('0x14')];this[_0x9d76('0x15')]=_0x472486['sugarcrmAccounts'];this[_0x9d76('0x16')]=_0x472486[_0x9d76('0x16')];this[_0x9d76('0x17')]=_0x472486[_0x9d76('0x17')];this['vtigerAccounts']=_0x472486[_0x9d76('0x18')];this[_0x9d76('0x19')]=_0x472486['servicenowAccounts'];this[_0x9d76('0x1a')]=_0x472486['dynamics365Accounts'];this['freshsalesAccounts']=_0x472486[_0x9d76('0x1b')];this[_0x9d76('0x1c')]={'zendesk':this[_0x9d76('0x12')],'salesforce':this[_0x9d76('0x14')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x9d76('0x15')],'zoho':this[_0x9d76('0x16')],'desk':this[_0x9d76('0x17')],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x9d76('0x1b')],'servicenow':this[_0x9d76('0x19')]};ami['on'](_0x9d76('0x1d'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentconnect',this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on']('custom:agentringnoanswer',this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x20'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x21'),this['syncCustomEvent'][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x22'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x23'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x24'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x25'),this['syncCustomEvent']['bind'](this));ami['on'](_0x9d76('0x26'),this['syncCustomEvent'][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x27'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x28'),this[_0x9d76('0x1e')]['bind'](this));ami['on']('custom:dialbegin',this['syncAgentDial'][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x29'),this['syncAgentDial'][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x2a'),this[_0x9d76('0x2b')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x2c'),this[_0x9d76('0x1e')]['bind'](this));ami['on'](_0x9d76('0x2d'),this[_0x9d76('0x1e')]['bind'](this));ami['on']('custom:substatus',this[_0x9d76('0x1e')]['bind'](this));ami['on'](_0x9d76('0x2e'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x2f'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x30'),this[_0x9d76('0x1e')]['bind'](this));ami['on'](_0x9d76('0x31'),this[_0x9d76('0x1e')][_0x9d76('0x1f')](this));ami['on'](_0x9d76('0x32'),this['syncCustomEvent']['bind'](this));}Trigger[_0x9d76('0x33')][_0x9d76('0x34')]=function(_0x48b810,_0x256d24,_0x1a4fc7){logger[_0x9d76('0x35')](_0x48b810,_0x256d24,JSON[_0x9d76('0x36')](_0x1a4fc7));io['to'](_0x48b810)[_0x9d76('0x34')](_0x256d24,_0x1a4fc7);};Trigger[_0x9d76('0x33')][_0x9d76('0x1e')]=function(_0x3086bb){var _0x496d3a=_[_0x9d76('0x37')](_0x3086bb);if(typeof _0x496d3a[_0x9d76('0x38')]==='undefined'){_0x496d3a[_0x9d76('0x38')]=_0x9d76('0x39');}logger[_0x9d76('0x3a')](_0x9d76('0x1e'),util[_0x9d76('0x3b')](_0x496d3a,{'showHidden':!![],'depth':null}));this[_0x9d76('0x3c')](_0x496d3a);};Trigger[_0x9d76('0x33')]['syncAgentDial']=function(_0xcd85ff){if(this[_0x9d76('0xe')][_0xcd85ff['interface']]){this['syncCustomEvent'](_0xcd85ff);}};Trigger[_0x9d76('0x33')][_0x9d76('0x3c')]=function(_0x24ddc7){var _0x21dd34;for(var _0x3022e1 in this['triggers']){if(this[_0x9d76('0xd')][_0x9d76('0x3d')](_0x3022e1)){if(this[_0x9d76('0xd')][_0x3022e1][_0x9d76('0x3e')]){_0x21dd34=this['checkTrigger'](this[_0x9d76('0xd')][_0x3022e1],_0x24ddc7);if(_0x21dd34){_[_0x9d76('0x3f')](_0x24ddc7,_0x24ddc7[_0x9d76('0x40')]);for(var _0x2d9ae0=0x0,_0x3288a4,_0x530916,_0x59ef04;_0x2d9ae0<this[_0x9d76('0xd')][_0x3022e1][_0x9d76('0x41')][_0x9d76('0x42')];_0x2d9ae0+=0x1){_0x3288a4=this[_0x9d76('0xd')][_0x3022e1][_0x9d76('0x41')][_0x2d9ae0];if(this[_0x9d76('0xe')][_0x24ddc7[_0x9d76('0x43')]]){switch(_0x3288a4[_0x9d76('0x44')][_0x9d76('0x45')]()){case _0x9d76('0x46'):break;case'motionbar':case _0x9d76('0x47'):var _0x532ed9={};switch(barAndWebActions[_0x3288a4[_0x9d76('0x48')]]){case _0x9d76('0xc'):_0x532ed9[_0x9d76('0x49')]=_0x3288a4[_0x9d76('0x4a')];_0x532ed9['html']=this[_0x9d76('0x10')][_0x3288a4[_0x9d76('0x4a')]]?Mustache[_0x9d76('0x4b')](this[_0x9d76('0x10')][_0x3288a4[_0x9d76('0x4a')]][_0x9d76('0x4c')],_0x24ddc7):_0x9d76('0x4d');break;case'url':_0x532ed9['uri']=this['buildUri'](_0x3288a4[_0x9d76('0x4a')],_0x24ddc7,_[_0x9d76('0x4e')](_0x3288a4[_0x9d76('0x4f')])?!![]:parseInt(_0x3288a4[_0x9d76('0x4f')],0xa));if(_['isNil'](_0x3288a4['data4'])){_0x532ed9['location']='0';}else{_0x532ed9[_0x9d76('0x50')]=_0x3288a4[_0x9d76('0x51')];_0x532ed9[_0x9d76('0x52')]=_[_0x9d76('0x4e')](_0x3288a4['data5'])?'800':_0x3288a4[_0x9d76('0x53')];_0x532ed9[_0x9d76('0x54')]=_[_0x9d76('0x4e')](_0x3288a4[_0x9d76('0x55')])?'600':_0x3288a4['data6'];}break;case'winapp':_0x532ed9[_0x9d76('0x56')]=_0x3288a4['data2']?Mustache[_0x9d76('0x4b')](_0x3288a4[_0x9d76('0x4a')],_0x24ddc7):'';_0x532ed9[_0x9d76('0x57')]=_0x3288a4[_0x9d76('0x4f')]?Mustache['render'](_0x3288a4[_0x9d76('0x4f')],_0x24ddc7):'';break;}this[_0x9d76('0x34')](util[_0x9d76('0x58')](_0x9d76('0x59'),this['agents'][_0x24ddc7['interface']]['name']),util[_0x9d76('0x58')](_0x9d76('0x5a'),_0x3288a4[_0x9d76('0x44')][_0x9d76('0x45')](),barAndWebActions[_0x3288a4[_0x9d76('0x48')]]),_[_0x9d76('0x3f')](_0x532ed9,_0x24ddc7));break;case _0x9d76('0x5b'):this['emit'](util['format']('user:%s',this['agents'][_0x24ddc7['interface']]['name']),util[_0x9d76('0x58')](_0x9d76('0x5c'),_0x3288a4[_0x9d76('0x44')]['toLowerCase']()),_[_0x9d76('0x3f')]({'ProjectId':parseInt(_0x3288a4[_0x9d76('0x48')],0xa)},_0x24ddc7));break;default:this[_0x9d76('0x34')](util[_0x9d76('0x58')](_0x9d76('0x59'),this[_0x9d76('0xe')][_0x24ddc7[_0x9d76('0x43')]][_0x9d76('0x5d')]),util[_0x9d76('0x58')](_0x9d76('0x5c'),_0x3288a4['action'][_0x9d76('0x45')]()),_['merge']({},_0x3288a4,_0x24ddc7));}}switch(_0x3288a4[_0x9d76('0x44')][_0x9d76('0x45')]()){case _0x9d76('0x46'):cmContact['exec'](this[_0x9d76('0xe')][_0x24ddc7['interface']],this[_0x9d76('0xd')][_0x3022e1],_0x3288a4,_0x24ddc7);break;case'integration':integration[_0x9d76('0x5e')](_0x3288a4,_0x24ddc7,this['accounts'],this[_0x9d76('0xe')][_0x24ddc7[_0x9d76('0x43')]],this[_0x9d76('0xf')][_0x24ddc7['queue']],this[_0x9d76('0x11')][_0x24ddc7['routeId']]);break;case _0x9d76('0x5f'):urlforward[_0x9d76('0x5e')](_0x3288a4,_0x24ddc7);break;case'script':script[_0x9d76('0x5e')](_0x3288a4,_0x24ddc7);break;}}}}}}};Trigger[_0x9d76('0x33')][_0x9d76('0x60')]=function(_0x1e247a,_0x182ed1,_0x4ec926){var _0x5e8836=url['parse'](Mustache[_0x9d76('0x4b')](_0x1e247a,_0x182ed1),!![]);if(_0x4ec926){_[_0x9d76('0x3f')](_0x5e8836['query'],_0x182ed1);}delete _0x5e8836['search'];var _0x5b64a7=url['format'](_0x5e8836);_0x5b64a7=_0x5b64a7[_0x9d76('0x61')](/\/\?/g,'?');return _0x5b64a7;};Trigger[_0x9d76('0x33')][_0x9d76('0x62')]=function(_0xd351ff,_0x5e32c2){var _0x4dfe72=!![];var _0x38b7dd=!![];var _0x48b1f3=![];if(_0xd351ff[_0x9d76('0x63')]===_0x5e32c2[_0x9d76('0x38')]){_0x48b1f3=!![];}if(_0xd351ff['AllConditions']['length']){_0x4dfe72=_['every'](_0xd351ff['AllConditions'],this[_0x9d76('0x64')](_0x5e32c2,_0xd351ff['channel']));}if(_0xd351ff[_0x9d76('0x65')][_0x9d76('0x42')]){_0x38b7dd=_[_0x9d76('0x66')](_0xd351ff[_0x9d76('0x65')],this[_0x9d76('0x64')](_0x5e32c2,_0xd351ff[_0x9d76('0x63')]));}var _0x71cb6d=_0x48b1f3&&_0x4dfe72&&_0x38b7dd;logger[_0x9d76('0x3a')]('checkTrigger:\x20trigger',util['inspect'](_0xd351ff,{'showHidden':!![],'depth':null}),_0x9d76('0x67'),util[_0x9d76('0x3b')](_0x5e32c2,{'showHidden':!![],'depth':null}),_0x48b1f3,_0x4dfe72,_0x38b7dd);return _0x71cb6d;};Trigger[_0x9d76('0x33')][_0x9d76('0x64')]=function(_0x3760b2,_0x2dcc59){return function(_0x3728fc){switch(_0x3728fc[_0x9d76('0x68')]){case _0x9d76('0x69'):if(_0x3760b2[_0x9d76('0x63')]===_0x2dcc59){if(_0x2dcc59===_0x9d76('0x6a')){return _0x3760b2[_0x9d76('0x6b')]?operators[_0x3728fc[_0x9d76('0x6c')]](Number(_0x3728fc[_0x9d76('0x6d')]),_0x3760b2[_0x9d76('0x6b')]):![];}else{return _0x3760b2[_[_0x9d76('0x6e')](_0x2dcc59)+_0x9d76('0x6f')]?operators[_0x3728fc[_0x9d76('0x6c')]](Number(_0x3728fc[_0x9d76('0x6d')]),_0x3760b2[_[_0x9d76('0x6e')](_0x2dcc59)+_0x9d76('0x6f')]):![];}}break;case _0x9d76('0x70'):case'message':if(_0x3760b2[_0x9d76('0x63')]===_0x2dcc59){return _0x3760b2['event']?operators[_0x3728fc['operator']](_0x3728fc['value'],_0x3760b2[_0x9d76('0x71')]):![];}break;case _0x9d76('0x72'):return _0x3760b2[_0x9d76('0x72')]?operators[_0x3728fc[_0x9d76('0x6c')]](_0x3728fc[_0x9d76('0x6d')],_0x3760b2['queue']):![];case _0x9d76('0x73'):return _0x3760b2[_0x9d76('0x74')]?operators[_0x3728fc[_0x9d76('0x6c')]](_0x3728fc[_0x9d76('0x6d')],_0x3760b2['membername']):![];case _0x9d76('0x75'):return _0x3760b2[_0x9d76('0x75')]?operators[_0x3728fc['operator']](_0x3728fc[_0x9d76('0x6d')],_0x3760b2[_0x9d76('0x75')]):![];case _0x9d76('0x76'):return _0x3760b2[_0x9d76('0x76')]?operators[_0x3728fc['operator']](_0x3728fc[_0x9d76('0x6d')],_0x3760b2[_0x9d76('0x76')]):![];case _0x9d76('0x77'):if(_0x3728fc[_0x9d76('0x6d')]===_0x9d76('0x78'))_0x3728fc[_0x9d76('0x6d')]=null;return typeof _0x3760b2[_0x9d76('0x79')]!==_0x9d76('0x7a')?operators[_0x3728fc[_0x9d76('0x6c')]](_0x3728fc[_0x9d76('0x6d')],_0x3760b2['substatus']):![];case _0x9d76('0x7b'):if(_0x3760b2['channel']===_0x2dcc59){return _0x3728fc[_0x9d76('0x6d')]==='created'&&_0x3728fc[_0x9d76('0x6c')]===_0x9d76('0x7c')?!![]:![];}break;}return![];};};module[_0x9d76('0x7d')]=Trigger;