f5376f4d101fc990bebe6663df7e1e56d1d79dab
[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 _0x57e9=['event','agent','membername','lastevent','exports','util','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','localhost','socket.io-emitter','redis','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:outgoingmessage','custom:acceptmessage','prototype','info','stringify','emit','clone','interface','hasOwnProperty','checkTrigger','variables','Actions','action','contactmanager','browser','data1','TemplateId','html','render','data2','template\x20not\x20found','uri','isNil','data3','data4','location','uriLocation','data5','windowHeight','data6','winApplication','user:%s','name','format','trigger:%s:%s','toLowerCase','merge','trigger:%s','integration','exec','queue','routeId','parse','query','replace','length','every','checkConditions','some','channel','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message'];(function(_0x44946b,_0xf874ec){var _0x249bc4=function(_0x40a23e){while(--_0x40a23e){_0x44946b['push'](_0x44946b['shift']());}};_0x249bc4(++_0xf874ec);}(_0x57e9,0x152));var _0x957e=function(_0x34b52c,_0x446503){_0x34b52c=_0x34b52c-0x0;var _0x4c845e=_0x57e9[_0x34b52c];return _0x4c845e;};'use strict';var util=require(_0x957e('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0x957e('0x1'));var Redis=require(_0x957e('0x2'));var urlforward=require(_0x957e('0x3'));var integration=require(_0x957e('0x4'));var cmContact=require(_0x957e('0x5'));var script=require(_0x957e('0x6'));var config=require(_0x957e('0x7'));var logger=require(_0x957e('0x8'))(_0x957e('0x9'));var ami=require(_0x957e('0xa'));config['redis']=_['defaults'](config['redis'],{'host':_0x957e('0xb'),'port':0x18eb});var io=require(_0x957e('0xc'))(new Redis(config[_0x957e('0xd')]));var operators={'equals':function(_0x5539a5,_0x1527be){return _0x5539a5==_0x1527be;},'not_equals':function(_0x4e8315,_0x26d30b){return _0x4e8315!=_0x26d30b;}};var barAndWebActions=['popup',_0x957e('0xe'),_0x957e('0xf')];function Trigger(_0x21fefd){this[_0x957e('0x10')]=_0x21fefd[_0x957e('0x10')];this[_0x957e('0x11')]=_0x21fefd[_0x957e('0x11')];this[_0x957e('0x12')]=_0x21fefd[_0x957e('0x12')];this[_0x957e('0x13')]=_0x21fefd[_0x957e('0x13')];this[_0x957e('0x14')]=_0x21fefd[_0x957e('0x14')];this[_0x957e('0x15')]=_0x21fefd['zendeskAccounts'];this[_0x957e('0x16')]=_0x21fefd[_0x957e('0x16')];this[_0x957e('0x17')]=_0x21fefd['salesforceAccounts'];this[_0x957e('0x18')]=_0x21fefd['sugarcrmAccounts'];this['zohoAccounts']=_0x21fefd[_0x957e('0x19')];this[_0x957e('0x1a')]=_0x21fefd[_0x957e('0x1a')];this['vtigerAccounts']=_0x21fefd['vtigerAccounts'];this[_0x957e('0x1b')]=_0x21fefd[_0x957e('0x1b')];this['dynamics365Accounts']=_0x21fefd[_0x957e('0x1c')];this[_0x957e('0x1d')]=_0x21fefd['freshsalesAccounts'];this[_0x957e('0x1e')]={'zendesk':this[_0x957e('0x15')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x957e('0x16')],'sugarcrm':this[_0x957e('0x18')],'zoho':this[_0x957e('0x19')],'desk':this[_0x957e('0x1a')],'vtiger':this[_0x957e('0x1f')],'dynamics365':this[_0x957e('0x1c')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x957e('0x1b')]};ami['on'](_0x957e('0x20'),this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on'](_0x957e('0x23'),this[_0x957e('0x21')]['bind'](this));ami['on'](_0x957e('0x24'),this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on'](_0x957e('0x25'),this[_0x957e('0x21')]['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on'](_0x957e('0x26'),this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on'](_0x957e('0x27'),this[_0x957e('0x21')]['bind'](this));ami['on'](_0x957e('0x28'),this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on'](_0x957e('0x29'),this[_0x957e('0x21')]['bind'](this));ami['on']('custom:amd',this[_0x957e('0x21')]['bind'](this));ami['on'](_0x957e('0x2a'),this[_0x957e('0x21')]['bind'](this));ami['on'](_0x957e('0x2b'),this['syncCustomEvent'][_0x957e('0x22')](this));ami['on']('custom:dialbegin',this[_0x957e('0x2c')][_0x957e('0x22')](this));ami['on'](_0x957e('0x2d'),this[_0x957e('0x2c')][_0x957e('0x22')](this));ami['on']('custom:dialend',this[_0x957e('0x2c')][_0x957e('0x22')](this));ami['on'](_0x957e('0x2e'),this['syncCustomEvent'][_0x957e('0x22')](this));ami['on']('custom:closedinteraction',this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on']('custom:incomingmessage',this['syncCustomEvent'][_0x957e('0x22')](this));ami['on'](_0x957e('0x2f'),this[_0x957e('0x21')][_0x957e('0x22')](this));ami['on'](_0x957e('0x30'),this[_0x957e('0x21')]['bind'](this));ami['on']('custom:rejectmessage',this['syncCustomEvent'][_0x957e('0x22')](this));}Trigger[_0x957e('0x31')]['emit']=function(_0x4f39c5,_0x19550c,_0x28b853){logger[_0x957e('0x32')](_0x4f39c5,_0x19550c,JSON[_0x957e('0x33')](_0x28b853));io['to'](_0x4f39c5)[_0x957e('0x34')](_0x19550c,_0x28b853);};Trigger[_0x957e('0x31')][_0x957e('0x21')]=function(_0x53791b){var _0x59317e=_[_0x957e('0x35')](_0x53791b);this['checkTriggers'](_0x59317e);};Trigger[_0x957e('0x31')][_0x957e('0x2c')]=function(_0x4032f7){if(this[_0x957e('0x11')][_0x4032f7[_0x957e('0x36')]]){this['syncCustomEvent'](_0x4032f7);}};Trigger[_0x957e('0x31')]['checkTriggers']=function(_0x1a4d21){var _0x531ee5;for(var _0x28b9ee in this[_0x957e('0x10')]){if(this[_0x957e('0x10')][_0x957e('0x37')](_0x28b9ee)){if(this['triggers'][_0x28b9ee]['status']){_0x531ee5=this[_0x957e('0x38')](this['triggers'][_0x28b9ee],_0x1a4d21);if(_0x531ee5){_['merge'](_0x1a4d21,_0x1a4d21[_0x957e('0x39')]);for(var _0x5f5a76=0x0,_0x51763a,_0x3885d0,_0x442d96;_0x5f5a76<this[_0x957e('0x10')][_0x28b9ee][_0x957e('0x3a')]['length'];_0x5f5a76+=0x1){_0x51763a=this['triggers'][_0x28b9ee]['Actions'][_0x5f5a76];if(this[_0x957e('0x11')][_0x1a4d21['interface']]){switch(_0x51763a[_0x957e('0x3b')]['toLowerCase']()){case _0x957e('0x3c'):break;case'motionbar':case _0x957e('0x3d'):var _0x33fdf6={};switch(barAndWebActions[_0x51763a[_0x957e('0x3e')]]){case'popup':_0x33fdf6[_0x957e('0x3f')]=_0x51763a['data2'];_0x33fdf6[_0x957e('0x40')]=this[_0x957e('0x13')][_0x51763a['data2']]?Mustache[_0x957e('0x41')](this[_0x957e('0x13')][_0x51763a[_0x957e('0x42')]][_0x957e('0x40')],_0x1a4d21):_0x957e('0x43');break;case _0x957e('0xe'):_0x33fdf6[_0x957e('0x44')]=this['buildUri'](_0x51763a[_0x957e('0x42')],_0x1a4d21,_[_0x957e('0x45')](_0x51763a[_0x957e('0x46')])?!![]:parseInt(_0x51763a[_0x957e('0x46')],0xa));if(_[_0x957e('0x45')](_0x51763a[_0x957e('0x47')])){_0x33fdf6[_0x957e('0x48')]='0';}else{_0x33fdf6[_0x957e('0x49')]=_0x51763a['data4'];_0x33fdf6['windowWidth']=_['isNil'](_0x51763a[_0x957e('0x4a')])?'800':_0x51763a[_0x957e('0x4a')];_0x33fdf6[_0x957e('0x4b')]=_['isNil'](_0x51763a[_0x957e('0x4c')])?'600':_0x51763a['data6'];}break;case _0x957e('0xf'):_0x33fdf6[_0x957e('0x4d')]=_0x51763a[_0x957e('0x42')]?Mustache[_0x957e('0x41')](_0x51763a[_0x957e('0x42')],_0x1a4d21):'';_0x33fdf6['winArguments']=_0x51763a[_0x957e('0x46')]?Mustache['render'](_0x51763a[_0x957e('0x46')],_0x1a4d21):'';break;}this['emit'](util['format'](_0x957e('0x4e'),this[_0x957e('0x11')][_0x1a4d21['interface']][_0x957e('0x4f')]),util[_0x957e('0x50')](_0x957e('0x51'),_0x51763a['action'][_0x957e('0x52')](),barAndWebActions[_0x51763a[_0x957e('0x3e')]]),_[_0x957e('0x53')](_0x33fdf6,_0x1a4d21));break;case'jscripty':this[_0x957e('0x34')](util['format'](_0x957e('0x4e'),this[_0x957e('0x11')][_0x1a4d21['interface']]['name']),util[_0x957e('0x50')](_0x957e('0x54'),_0x51763a[_0x957e('0x3b')][_0x957e('0x52')]()),_[_0x957e('0x53')]({'ProjectId':parseInt(_0x51763a[_0x957e('0x3e')],0xa)},_0x1a4d21));break;default:this['emit'](util[_0x957e('0x50')](_0x957e('0x4e'),this[_0x957e('0x11')][_0x1a4d21['interface']][_0x957e('0x4f')]),util[_0x957e('0x50')](_0x957e('0x54'),_0x51763a['action']['toLowerCase']()),_['merge']({},_0x51763a,_0x1a4d21));}}switch(_0x51763a['action']['toLowerCase']()){case'contactmanager':cmContact['exec'](this[_0x957e('0x11')][_0x1a4d21[_0x957e('0x36')]],this['triggers'][_0x28b9ee],_0x51763a,_0x1a4d21);break;case _0x957e('0x55'):integration[_0x957e('0x56')](_0x51763a,_0x1a4d21,this[_0x957e('0x1e')],this['agents'][_0x1a4d21['interface']],this[_0x957e('0x12')][_0x1a4d21[_0x957e('0x57')]],this[_0x957e('0x14')][_0x1a4d21[_0x957e('0x58')]]);break;case'urlforward':urlforward['exec'](_0x51763a,_0x1a4d21);break;case'script':script[_0x957e('0x56')](_0x51763a,_0x1a4d21);break;}}}}}}};Trigger[_0x957e('0x31')]['buildUri']=function(_0x4eff9d,_0x4e9ff1,_0x5423d1){var _0x4e124b=url[_0x957e('0x59')](Mustache[_0x957e('0x41')](_0x4eff9d,_0x4e9ff1),!![]);if(_0x5423d1){_[_0x957e('0x53')](_0x4e124b[_0x957e('0x5a')],_0x4e9ff1);}delete _0x4e124b['search'];var _0x4dcea7=url[_0x957e('0x50')](_0x4e124b);_0x4dcea7=_0x4dcea7[_0x957e('0x5b')](/\/\?/g,'?');return _0x4dcea7;};Trigger[_0x957e('0x31')][_0x957e('0x38')]=function(_0x4480d8,_0x22d09e){var _0x4be142=!![],_0xe47dfb=!![];if(_0x4480d8['AllConditions'][_0x957e('0x5c')]){_0x4be142=_[_0x957e('0x5d')](_0x4480d8['AllConditions'],this[_0x957e('0x5e')](_0x22d09e,_0x4480d8['channel']));}if(_0x4480d8['AnyConditions']['length']){_0xe47dfb=_[_0x957e('0x5f')](_0x4480d8['AnyConditions'],this[_0x957e('0x5e')](_0x22d09e,_0x4480d8[_0x957e('0x60')]));}return _0x4be142&&_0xe47dfb;};Trigger[_0x957e('0x31')]['checkConditions']=function(_0xa4291d,_0x133256){return function(_0x3c690c){switch(_0x3c690c[_0x957e('0x61')]){case _0x957e('0x62'):if(_0xa4291d[_0x957e('0x60')]===_0x133256){if(_0x133256===_0x957e('0x63')){return _0xa4291d[_0x957e('0x64')]?operators[_0x3c690c[_0x957e('0x65')]](Number(_0x3c690c[_0x957e('0x66')]),_0xa4291d[_0x957e('0x64')]):![];}else{return _0xa4291d[_[_0x957e('0x67')](_0x133256)+_0x957e('0x68')]?operators[_0x3c690c['operator']](Number(_0x3c690c['value']),_0xa4291d[_['upperFirst'](_0x133256)+'AccountId']):![];}}break;case'interaction':case _0x957e('0x69'):if(_0xa4291d[_0x957e('0x60')]===_0x133256){return _0xa4291d[_0x957e('0x6a')]?operators[_0x3c690c['operator']](_0x3c690c[_0x957e('0x66')],_0xa4291d[_0x957e('0x6a')]):![];}break;case'queue':return _0xa4291d['queue']?operators[_0x3c690c[_0x957e('0x65')]](_0x3c690c[_0x957e('0x66')],_0xa4291d[_0x957e('0x57')]):![];case _0x957e('0x6b'):return _0xa4291d[_0x957e('0x6c')]?operators[_0x3c690c[_0x957e('0x65')]](_0x3c690c[_0x957e('0x66')],_0xa4291d[_0x957e('0x6c')]):![];case _0x957e('0x6d'):return _0xa4291d[_0x957e('0x6d')]?operators[_0x3c690c[_0x957e('0x65')]](_0x3c690c['value'],_0xa4291d['lastevent']):![];case _0x957e('0x58'):return _0xa4291d[_0x957e('0x58')]?operators[_0x3c690c[_0x957e('0x65')]](_0x3c690c['value'],_0xa4291d[_0x957e('0x58')]):![];}return![];};};module[_0x957e('0x6e')]=Trigger;