b69615680d9e7876e5fa87b5888c1c339b545b9f
[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 _0x5aec=['ioredis','./integration','./cmContact','./script','../../../config/environment','trigger','../ami','redis','localhost','socket.io-emitter','popup','winapp','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','info','stringify','emit','checkTriggers','interface','triggers','status','checkTrigger','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','templates','render','template\x20not\x20found','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','600','data6','winApplication','winArguments','format','user:%s','name','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','parse','query','search','AllConditions','checkConditions','channel','some','AnyConditions','field','chat','ChatWebsiteId','operator','value','AccountId','upperFirst','interaction','event','agent','membername','lastevent','exports','lodash','url'];(function(_0x4bbe4a,_0x52694d){var _0x47fbf7=function(_0x3982a3){while(--_0x3982a3){_0x4bbe4a['push'](_0x4bbe4a['shift']());}};_0x47fbf7(++_0x52694d);}(_0x5aec,0xe8));var _0xc5ae=function(_0x1573ea,_0x434f02){_0x1573ea=_0x1573ea-0x0;var _0x51c0e2=_0x5aec[_0x1573ea];return _0x51c0e2;};'use strict';var util=require('util');var _=require(_0xc5ae('0x0'));var url=require(_0xc5ae('0x1'));var Mustache=require('mustache');var Redis=require(_0xc5ae('0x2'));var urlforward=require('./urlforward');var integration=require(_0xc5ae('0x3'));var cmContact=require(_0xc5ae('0x4'));var script=require(_0xc5ae('0x5'));var config=require(_0xc5ae('0x6'));var logger=require('../../../config/logger')(_0xc5ae('0x7'));var ami=require(_0xc5ae('0x8'));config[_0xc5ae('0x9')]=_['defaults'](config[_0xc5ae('0x9')],{'host':_0xc5ae('0xa'),'port':0x18eb});var io=require(_0xc5ae('0xb'))(new Redis(config[_0xc5ae('0x9')]));var operators={'equals':function(_0x2e227a,_0x17a473){return _0x2e227a==_0x17a473;},'not_equals':function(_0x4ef719,_0x5cea89){return _0x4ef719!=_0x5cea89;}};var barAndWebActions=[_0xc5ae('0xc'),_0xc5ae('0x1'),_0xc5ae('0xd')];function Trigger(_0x23cfb8){this['triggers']=_0x23cfb8['triggers'];this['agents']=_0x23cfb8[_0xc5ae('0xe')];this[_0xc5ae('0xf')]=_0x23cfb8[_0xc5ae('0xf')];this['templates']=_0x23cfb8['templates'];this['voiceExtensions']=_0x23cfb8[_0xc5ae('0x10')];this[_0xc5ae('0x11')]=_0x23cfb8[_0xc5ae('0x11')];this[_0xc5ae('0x12')]=_0x23cfb8[_0xc5ae('0x12')];this[_0xc5ae('0x13')]=_0x23cfb8['salesforceAccounts'];this[_0xc5ae('0x14')]=_0x23cfb8[_0xc5ae('0x14')];this[_0xc5ae('0x15')]=_0x23cfb8['zohoAccounts'];this[_0xc5ae('0x16')]=_0x23cfb8[_0xc5ae('0x16')];this[_0xc5ae('0x17')]=_0x23cfb8[_0xc5ae('0x17')];this[_0xc5ae('0x18')]=_0x23cfb8[_0xc5ae('0x18')];this[_0xc5ae('0x19')]=_0x23cfb8[_0xc5ae('0x19')];this['freshsalesAccounts']=_0x23cfb8[_0xc5ae('0x1a')];this[_0xc5ae('0x1b')]={'zendesk':this[_0xc5ae('0x11')],'salesforce':this['salesforceAccounts'],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xc5ae('0x14')],'zoho':this[_0xc5ae('0x15')],'desk':this[_0xc5ae('0x16')],'vtiger':this[_0xc5ae('0x17')],'dynamics365':this[_0xc5ae('0x19')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xc5ae('0x18')]};ami['on'](_0xc5ae('0x1c'),this['syncCustomEvent'][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x1e'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x20'),this[_0xc5ae('0x1f')]['bind'](this));ami['on'](_0xc5ae('0x21'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent'][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x22'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x23'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x24'),this['syncCustomEvent'][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x25'),this['syncCustomEvent'][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x26'),this['syncCustomEvent'][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x27'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x28'),this['syncAgentDial']['bind'](this));ami['on']('custom:dialconnect',this[_0xc5ae('0x29')]['bind'](this));ami['on']('custom:dialend',this[_0xc5ae('0x29')]['bind'](this));ami['on'](_0xc5ae('0x2a'),this[_0xc5ae('0x1f')]['bind'](this));ami['on'](_0xc5ae('0x2b'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x2c'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x2d'),this[_0xc5ae('0x1f')]['bind'](this));ami['on'](_0xc5ae('0x2e'),this['syncCustomEvent'][_0xc5ae('0x1d')](this));ami['on'](_0xc5ae('0x2f'),this[_0xc5ae('0x1f')][_0xc5ae('0x1d')](this));}Trigger[_0xc5ae('0x30')]['emit']=function(_0x1863d1,_0x58a646,_0x3c324f){logger[_0xc5ae('0x31')](_0x1863d1,_0x58a646,JSON[_0xc5ae('0x32')](_0x3c324f));io['to'](_0x1863d1)[_0xc5ae('0x33')](_0x58a646,_0x3c324f);};Trigger[_0xc5ae('0x30')]['syncCustomEvent']=function(_0x437c20){var _0x343f8c=_['clone'](_0x437c20);this[_0xc5ae('0x34')](_0x343f8c);};Trigger[_0xc5ae('0x30')]['syncAgentDial']=function(_0x45f611){if(this[_0xc5ae('0xe')][_0x45f611[_0xc5ae('0x35')]]){this[_0xc5ae('0x1f')](_0x45f611);}};Trigger[_0xc5ae('0x30')][_0xc5ae('0x34')]=function(_0x308362){var _0x1e329a;for(var _0x12949e in this[_0xc5ae('0x36')]){if(this[_0xc5ae('0x36')]['hasOwnProperty'](_0x12949e)){if(this[_0xc5ae('0x36')][_0x12949e][_0xc5ae('0x37')]){_0x1e329a=this[_0xc5ae('0x38')](this[_0xc5ae('0x36')][_0x12949e],_0x308362);if(_0x1e329a){_[_0xc5ae('0x39')](_0x308362,_0x308362[_0xc5ae('0x3a')]);for(var _0x2893ac=0x0,_0x625e33,_0x295959,_0x3d64e0;_0x2893ac<this[_0xc5ae('0x36')][_0x12949e][_0xc5ae('0x3b')][_0xc5ae('0x3c')];_0x2893ac+=0x1){_0x625e33=this['triggers'][_0x12949e]['Actions'][_0x2893ac];if(this[_0xc5ae('0xe')][_0x308362[_0xc5ae('0x35')]]){switch(_0x625e33[_0xc5ae('0x3d')][_0xc5ae('0x3e')]()){case _0xc5ae('0x3f'):break;case _0xc5ae('0x40'):case _0xc5ae('0x41'):var _0x2ad511={};switch(barAndWebActions[_0x625e33[_0xc5ae('0x42')]]){case _0xc5ae('0xc'):_0x2ad511[_0xc5ae('0x43')]=_0x625e33[_0xc5ae('0x44')];_0x2ad511[_0xc5ae('0x45')]=this[_0xc5ae('0x46')][_0x625e33['data2']]?Mustache[_0xc5ae('0x47')](this[_0xc5ae('0x46')][_0x625e33['data2']][_0xc5ae('0x45')],_0x308362):_0xc5ae('0x48');break;case _0xc5ae('0x1'):_0x2ad511['uri']=this[_0xc5ae('0x49')](_0x625e33[_0xc5ae('0x44')],_0x308362,_[_0xc5ae('0x4a')](_0x625e33[_0xc5ae('0x4b')])?!![]:parseInt(_0x625e33['data3'],0xa));if(_[_0xc5ae('0x4a')](_0x625e33[_0xc5ae('0x4c')])){_0x2ad511[_0xc5ae('0x4d')]='0';}else{_0x2ad511[_0xc5ae('0x4e')]=_0x625e33[_0xc5ae('0x4c')];_0x2ad511[_0xc5ae('0x4f')]=_['isNil'](_0x625e33[_0xc5ae('0x50')])?_0xc5ae('0x51'):_0x625e33[_0xc5ae('0x50')];_0x2ad511['windowHeight']=_['isNil'](_0x625e33['data6'])?_0xc5ae('0x52'):_0x625e33[_0xc5ae('0x53')];}break;case'winapp':_0x2ad511[_0xc5ae('0x54')]=_0x625e33['data2']?Mustache[_0xc5ae('0x47')](_0x625e33[_0xc5ae('0x44')],_0x308362):'';_0x2ad511[_0xc5ae('0x55')]=_0x625e33['data3']?Mustache[_0xc5ae('0x47')](_0x625e33[_0xc5ae('0x4b')],_0x308362):'';break;}this[_0xc5ae('0x33')](util[_0xc5ae('0x56')](_0xc5ae('0x57'),this[_0xc5ae('0xe')][_0x308362[_0xc5ae('0x35')]][_0xc5ae('0x58')]),util[_0xc5ae('0x56')]('trigger:%s:%s',_0x625e33['action'][_0xc5ae('0x3e')](),barAndWebActions[_0x625e33[_0xc5ae('0x42')]]),_['merge'](_0x2ad511,_0x308362));break;case _0xc5ae('0x59'):this['emit'](util[_0xc5ae('0x56')](_0xc5ae('0x57'),this[_0xc5ae('0xe')][_0x308362['interface']][_0xc5ae('0x58')]),util[_0xc5ae('0x56')](_0xc5ae('0x5a'),_0x625e33[_0xc5ae('0x3d')][_0xc5ae('0x3e')]()),_[_0xc5ae('0x39')]({'ProjectId':parseInt(_0x625e33[_0xc5ae('0x42')],0xa)},_0x308362));break;default:this['emit'](util['format'](_0xc5ae('0x57'),this[_0xc5ae('0xe')][_0x308362['interface']][_0xc5ae('0x58')]),util['format']('trigger:%s',_0x625e33['action'][_0xc5ae('0x3e')]()),_[_0xc5ae('0x39')]({},_0x625e33,_0x308362));}}switch(_0x625e33[_0xc5ae('0x3d')][_0xc5ae('0x3e')]()){case _0xc5ae('0x3f'):cmContact[_0xc5ae('0x5b')](this['agents'][_0x308362[_0xc5ae('0x35')]],this['triggers'][_0x12949e],_0x625e33,_0x308362);break;case _0xc5ae('0x5c'):integration['exec'](_0x625e33,_0x308362,this['accounts'],this[_0xc5ae('0xe')][_0x308362[_0xc5ae('0x35')]],this['voiceQueues'][_0x308362[_0xc5ae('0x5d')]],this[_0xc5ae('0x10')][_0x308362[_0xc5ae('0x5e')]]);break;case _0xc5ae('0x5f'):urlforward[_0xc5ae('0x5b')](_0x625e33,_0x308362);break;case'script':script['exec'](_0x625e33,_0x308362);break;}}}}}}};Trigger[_0xc5ae('0x30')][_0xc5ae('0x49')]=function(_0x97872,_0x298d40,_0x5c0d53){var _0x3c1ce1=url[_0xc5ae('0x60')](Mustache[_0xc5ae('0x47')](_0x97872,_0x298d40),!![]);if(_0x5c0d53){_[_0xc5ae('0x39')](_0x3c1ce1[_0xc5ae('0x61')],_0x298d40);}delete _0x3c1ce1[_0xc5ae('0x62')];var _0x3c3b7b=url[_0xc5ae('0x56')](_0x3c1ce1);_0x3c3b7b=_0x3c3b7b['replace'](/\/\?/g,'?');return _0x3c3b7b;};Trigger[_0xc5ae('0x30')][_0xc5ae('0x38')]=function(_0x5585f2,_0x3412b3){var _0x1eaaba=!![],_0xd46c3=!![];if(_0x5585f2[_0xc5ae('0x63')][_0xc5ae('0x3c')]){_0x1eaaba=_['every'](_0x5585f2[_0xc5ae('0x63')],this[_0xc5ae('0x64')](_0x3412b3,_0x5585f2[_0xc5ae('0x65')]));}if(_0x5585f2['AnyConditions'][_0xc5ae('0x3c')]){_0xd46c3=_[_0xc5ae('0x66')](_0x5585f2[_0xc5ae('0x67')],this[_0xc5ae('0x64')](_0x3412b3,_0x5585f2[_0xc5ae('0x65')]));}return _0x1eaaba&&_0xd46c3;};Trigger['prototype'][_0xc5ae('0x64')]=function(_0x493180,_0x499882){return function(_0x190ca3){switch(_0x190ca3[_0xc5ae('0x68')]){case'account':if(_0x493180[_0xc5ae('0x65')]===_0x499882){if(_0x499882===_0xc5ae('0x69')){return _0x493180[_0xc5ae('0x6a')]?operators[_0x190ca3[_0xc5ae('0x6b')]](Number(_0x190ca3[_0xc5ae('0x6c')]),_0x493180[_0xc5ae('0x6a')]):![];}else{return _0x493180[_['upperFirst'](_0x499882)+_0xc5ae('0x6d')]?operators[_0x190ca3[_0xc5ae('0x6b')]](Number(_0x190ca3[_0xc5ae('0x6c')]),_0x493180[_[_0xc5ae('0x6e')](_0x499882)+_0xc5ae('0x6d')]):![];}}break;case _0xc5ae('0x6f'):case'message':if(_0x493180[_0xc5ae('0x65')]===_0x499882){return _0x493180[_0xc5ae('0x70')]?operators[_0x190ca3[_0xc5ae('0x6b')]](_0x190ca3['value'],_0x493180[_0xc5ae('0x70')]):![];}break;case'queue':return _0x493180['queue']?operators[_0x190ca3[_0xc5ae('0x6b')]](_0x190ca3[_0xc5ae('0x6c')],_0x493180['queue']):![];case _0xc5ae('0x71'):return _0x493180[_0xc5ae('0x72')]?operators[_0x190ca3['operator']](_0x190ca3[_0xc5ae('0x6c')],_0x493180[_0xc5ae('0x72')]):![];case'lastevent':return _0x493180[_0xc5ae('0x73')]?operators[_0x190ca3[_0xc5ae('0x6b')]](_0x190ca3[_0xc5ae('0x6c')],_0x493180[_0xc5ae('0x73')]):![];case _0xc5ae('0x5e'):return _0x493180[_0xc5ae('0x5e')]?operators[_0x190ca3['operator']](_0x190ca3['value'],_0x493180[_0xc5ae('0x5e')]):![];}return![];};};module[_0xc5ae('0x74')]=Trigger;