Built motion from commit (unavailable).|2.5.24
[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 _0x32ff=['custom:rejectmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','triggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','motionbar','browser','data1','TemplateId','data2','render','html','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','data5','data6','600','winapp','winApplication','format','user:%s','trigger:%s:%s','toLowerCase','name','trigger:%s','contactmanager','exec','integration','queue','routeId','urlforward','script','query','search','replace','AllConditions','length','every','checkConditions','channel','AnyConditions','some','field','account','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','exports','util','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','defaults','localhost','socket.io-emitter','redis','popup','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:acceptmessage'];(function(_0x83cace,_0x1c9ca2){var _0x56bfb1=function(_0xb03401){while(--_0xb03401){_0x83cace['push'](_0x83cace['shift']());}};_0x56bfb1(++_0x1c9ca2);}(_0x32ff,0xc7));var _0xf32f=function(_0x197494,_0x49a88f){_0x197494=_0x197494-0x0;var _0x5bde19=_0x32ff[_0x197494];return _0x5bde19;};'use strict';var util=require(_0xf32f('0x0'));var _=require(_0xf32f('0x1'));var url=require(_0xf32f('0x2'));var Mustache=require(_0xf32f('0x3'));var Redis=require(_0xf32f('0x4'));var urlforward=require(_0xf32f('0x5'));var integration=require(_0xf32f('0x6'));var cmContact=require(_0xf32f('0x7'));var script=require(_0xf32f('0x8'));var config=require(_0xf32f('0x9'));var logger=require(_0xf32f('0xa'))(_0xf32f('0xb'));var ami=require(_0xf32f('0xc'));config['redis']=_[_0xf32f('0xd')](config['redis'],{'host':_0xf32f('0xe'),'port':0x18eb});var io=require(_0xf32f('0xf'))(new Redis(config[_0xf32f('0x10')]));var operators={'equals':function(_0x3ebe43,_0x2e360b){return _0x3ebe43==_0x2e360b;},'not_equals':function(_0x2a0155,_0x433a1a){return _0x2a0155!=_0x433a1a;}};var barAndWebActions=[_0xf32f('0x11'),'url','winapp'];function Trigger(_0x41e023){this['triggers']=_0x41e023['triggers'];this[_0xf32f('0x12')]=_0x41e023[_0xf32f('0x12')];this[_0xf32f('0x13')]=_0x41e023[_0xf32f('0x13')];this[_0xf32f('0x14')]=_0x41e023[_0xf32f('0x14')];this[_0xf32f('0x15')]=_0x41e023[_0xf32f('0x15')];this[_0xf32f('0x16')]=_0x41e023['zendeskAccounts'];this[_0xf32f('0x17')]=_0x41e023[_0xf32f('0x17')];this[_0xf32f('0x18')]=_0x41e023['salesforceAccounts'];this[_0xf32f('0x19')]=_0x41e023[_0xf32f('0x19')];this[_0xf32f('0x1a')]=_0x41e023[_0xf32f('0x1a')];this[_0xf32f('0x1b')]=_0x41e023[_0xf32f('0x1b')];this['vtigerAccounts']=_0x41e023[_0xf32f('0x1c')];this['servicenowAccounts']=_0x41e023[_0xf32f('0x1d')];this['dynamics365Accounts']=_0x41e023[_0xf32f('0x1e')];this[_0xf32f('0x1f')]=_0x41e023[_0xf32f('0x1f')];this[_0xf32f('0x20')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xf32f('0x18')],'freshdesk':this[_0xf32f('0x17')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xf32f('0x1a')],'desk':this[_0xf32f('0x1b')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xf32f('0x1e')],'freshsales':this[_0xf32f('0x1f')],'servicenow':this[_0xf32f('0x1d')]};ami['on'](_0xf32f('0x21'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x24'),this[_0xf32f('0x22')]['bind'](this));ami['on'](_0xf32f('0x25'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x26'),this[_0xf32f('0x22')]['bind'](this));ami['on'](_0xf32f('0x27'),this['syncCustomEvent'][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x28'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentbusy',this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x29'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x2a'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x2b'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x2c'),this['syncCustomEvent'][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x2d'),this[_0xf32f('0x2e')]['bind'](this));ami['on'](_0xf32f('0x2f'),this[_0xf32f('0x2e')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x30'),this[_0xf32f('0x2e')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x31'),this['syncCustomEvent'][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x32'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x33'),this['syncCustomEvent'][_0xf32f('0x23')](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent'][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x34'),this[_0xf32f('0x22')][_0xf32f('0x23')](this));ami['on'](_0xf32f('0x35'),this[_0xf32f('0x22')]['bind'](this));}Trigger[_0xf32f('0x36')][_0xf32f('0x37')]=function(_0x11f2f2,_0x43489c,_0x116735){logger[_0xf32f('0x38')](_0x11f2f2,_0x43489c,JSON[_0xf32f('0x39')](_0x116735));io['to'](_0x11f2f2)[_0xf32f('0x37')](_0x43489c,_0x116735);};Trigger['prototype'][_0xf32f('0x22')]=function(_0x2fd451){var _0x525d53=_[_0xf32f('0x3a')](_0x2fd451);this[_0xf32f('0x3b')](_0x525d53);};Trigger[_0xf32f('0x36')]['syncAgentDial']=function(_0x1c618c){if(this[_0xf32f('0x12')][_0x1c618c[_0xf32f('0x3c')]]){this[_0xf32f('0x22')](_0x1c618c);}};Trigger[_0xf32f('0x36')][_0xf32f('0x3b')]=function(_0x6fc210){var _0x32ecee;for(var _0xeeac78 in this[_0xf32f('0x3d')]){if(this[_0xf32f('0x3d')][_0xf32f('0x3e')](_0xeeac78)){if(this[_0xf32f('0x3d')][_0xeeac78][_0xf32f('0x3f')]){_0x32ecee=this[_0xf32f('0x40')](this['triggers'][_0xeeac78],_0x6fc210);if(_0x32ecee){_[_0xf32f('0x41')](_0x6fc210,_0x6fc210[_0xf32f('0x42')]);for(var _0x482120=0x0,_0x19e45f,_0x1b128f,_0x109545;_0x482120<this['triggers'][_0xeeac78][_0xf32f('0x43')]['length'];_0x482120+=0x1){_0x19e45f=this[_0xf32f('0x3d')][_0xeeac78][_0xf32f('0x43')][_0x482120];if(this['agents'][_0x6fc210[_0xf32f('0x3c')]]){switch(_0x19e45f[_0xf32f('0x44')]['toLowerCase']()){case'contactmanager':break;case _0xf32f('0x45'):case _0xf32f('0x46'):var _0x733297={};switch(barAndWebActions[_0x19e45f[_0xf32f('0x47')]]){case _0xf32f('0x11'):_0x733297[_0xf32f('0x48')]=_0x19e45f[_0xf32f('0x49')];_0x733297['html']=this[_0xf32f('0x14')][_0x19e45f['data2']]?Mustache[_0xf32f('0x4a')](this[_0xf32f('0x14')][_0x19e45f[_0xf32f('0x49')]][_0xf32f('0x4b')],_0x6fc210):_0xf32f('0x4c');break;case _0xf32f('0x2'):_0x733297[_0xf32f('0x4d')]=this[_0xf32f('0x4e')](_0x19e45f[_0xf32f('0x49')],_0x6fc210,_[_0xf32f('0x4f')](_0x19e45f[_0xf32f('0x50')])?!![]:parseInt(_0x19e45f[_0xf32f('0x50')],0xa));if(_[_0xf32f('0x4f')](_0x19e45f[_0xf32f('0x51')])){_0x733297[_0xf32f('0x52')]='0';}else{_0x733297['uriLocation']=_0x19e45f[_0xf32f('0x51')];_0x733297[_0xf32f('0x53')]=_[_0xf32f('0x4f')](_0x19e45f['data5'])?'800':_0x19e45f[_0xf32f('0x54')];_0x733297['windowHeight']=_[_0xf32f('0x4f')](_0x19e45f[_0xf32f('0x55')])?_0xf32f('0x56'):_0x19e45f['data6'];}break;case _0xf32f('0x57'):_0x733297[_0xf32f('0x58')]=_0x19e45f[_0xf32f('0x49')]?Mustache[_0xf32f('0x4a')](_0x19e45f[_0xf32f('0x49')],_0x6fc210):'';_0x733297['winArguments']=_0x19e45f[_0xf32f('0x50')]?Mustache[_0xf32f('0x4a')](_0x19e45f[_0xf32f('0x50')],_0x6fc210):'';break;}this[_0xf32f('0x37')](util[_0xf32f('0x59')](_0xf32f('0x5a'),this[_0xf32f('0x12')][_0x6fc210[_0xf32f('0x3c')]]['name']),util['format'](_0xf32f('0x5b'),_0x19e45f[_0xf32f('0x44')][_0xf32f('0x5c')](),barAndWebActions[_0x19e45f[_0xf32f('0x47')]]),_['merge'](_0x733297,_0x6fc210));break;case'jscripty':this[_0xf32f('0x37')](util[_0xf32f('0x59')](_0xf32f('0x5a'),this[_0xf32f('0x12')][_0x6fc210[_0xf32f('0x3c')]][_0xf32f('0x5d')]),util['format']('trigger:%s',_0x19e45f['action']['toLowerCase']()),_[_0xf32f('0x41')]({'ProjectId':parseInt(_0x19e45f[_0xf32f('0x47')],0xa)},_0x6fc210));break;default:this[_0xf32f('0x37')](util['format'](_0xf32f('0x5a'),this[_0xf32f('0x12')][_0x6fc210[_0xf32f('0x3c')]][_0xf32f('0x5d')]),util[_0xf32f('0x59')](_0xf32f('0x5e'),_0x19e45f[_0xf32f('0x44')]['toLowerCase']()),_[_0xf32f('0x41')]({},_0x19e45f,_0x6fc210));}}switch(_0x19e45f[_0xf32f('0x44')]['toLowerCase']()){case _0xf32f('0x5f'):cmContact[_0xf32f('0x60')](this[_0xf32f('0x12')][_0x6fc210[_0xf32f('0x3c')]],this['triggers'][_0xeeac78],_0x19e45f,_0x6fc210);break;case _0xf32f('0x61'):integration['exec'](_0x19e45f,_0x6fc210,this[_0xf32f('0x20')],this[_0xf32f('0x12')][_0x6fc210[_0xf32f('0x3c')]],this[_0xf32f('0x13')][_0x6fc210[_0xf32f('0x62')]],this[_0xf32f('0x15')][_0x6fc210[_0xf32f('0x63')]]);break;case _0xf32f('0x64'):urlforward[_0xf32f('0x60')](_0x19e45f,_0x6fc210);break;case _0xf32f('0x65'):script[_0xf32f('0x60')](_0x19e45f,_0x6fc210);break;}}}}}}};Trigger[_0xf32f('0x36')][_0xf32f('0x4e')]=function(_0x1ca660,_0x404d38,_0x507957){var _0x101c0f=url['parse'](Mustache[_0xf32f('0x4a')](_0x1ca660,_0x404d38),!![]);if(_0x507957){_[_0xf32f('0x41')](_0x101c0f[_0xf32f('0x66')],_0x404d38);}delete _0x101c0f[_0xf32f('0x67')];var _0x998aac=url[_0xf32f('0x59')](_0x101c0f);_0x998aac=_0x998aac[_0xf32f('0x68')](/\/\?/g,'?');return _0x998aac;};Trigger[_0xf32f('0x36')][_0xf32f('0x40')]=function(_0x4c6119,_0x13f7f3){var _0x4be94f=!![],_0x1886f6=!![];if(_0x4c6119[_0xf32f('0x69')][_0xf32f('0x6a')]){_0x4be94f=_[_0xf32f('0x6b')](_0x4c6119[_0xf32f('0x69')],this[_0xf32f('0x6c')](_0x13f7f3,_0x4c6119[_0xf32f('0x6d')]));}if(_0x4c6119[_0xf32f('0x6e')][_0xf32f('0x6a')]){_0x1886f6=_[_0xf32f('0x6f')](_0x4c6119[_0xf32f('0x6e')],this[_0xf32f('0x6c')](_0x13f7f3,_0x4c6119[_0xf32f('0x6d')]));}return _0x4be94f&&_0x1886f6;};Trigger['prototype']['checkConditions']=function(_0x544174,_0x99c626){return function(_0x1e7631){switch(_0x1e7631[_0xf32f('0x70')]){case _0xf32f('0x71'):if(_0x544174[_0xf32f('0x6d')]===_0x99c626){if(_0x99c626==='chat'){return _0x544174[_0xf32f('0x72')]?operators[_0x1e7631[_0xf32f('0x73')]](Number(_0x1e7631[_0xf32f('0x74')]),_0x544174[_0xf32f('0x72')]):![];}else{return _0x544174[_['upperFirst'](_0x99c626)+'AccountId']?operators[_0x1e7631[_0xf32f('0x73')]](Number(_0x1e7631[_0xf32f('0x74')]),_0x544174[_[_0xf32f('0x75')](_0x99c626)+_0xf32f('0x76')]):![];}}break;case _0xf32f('0x77'):case _0xf32f('0x78'):if(_0x544174[_0xf32f('0x6d')]===_0x99c626){return _0x544174[_0xf32f('0x79')]?operators[_0x1e7631[_0xf32f('0x73')]](_0x1e7631[_0xf32f('0x74')],_0x544174['event']):![];}break;case'queue':return _0x544174[_0xf32f('0x62')]?operators[_0x1e7631['operator']](_0x1e7631[_0xf32f('0x74')],_0x544174[_0xf32f('0x62')]):![];case _0xf32f('0x7a'):return _0x544174[_0xf32f('0x7b')]?operators[_0x1e7631[_0xf32f('0x73')]](_0x1e7631[_0xf32f('0x74')],_0x544174[_0xf32f('0x7b')]):![];case _0xf32f('0x7c'):return _0x544174[_0xf32f('0x7c')]?operators[_0x1e7631[_0xf32f('0x73')]](_0x1e7631[_0xf32f('0x74')],_0x544174[_0xf32f('0x7c')]):![];case'routeId':return _0x544174[_0xf32f('0x63')]?operators[_0x1e7631[_0xf32f('0x73')]](_0x1e7631['value'],_0x544174[_0xf32f('0x63')]):![];}return![];};};module[_0xf32f('0x7d')]=Trigger;