Built motion from commit 092f8824.|2.5.49
[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 _0x9dfc=['merge','variables','Actions','length','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','template\x20not\x20found','uri','data3','isNil','data4','location','data5','800','windowHeight','data6','600','winapp','winApplication','render','winArguments','format','user:%s','name','trigger:%s:%s','trigger:%s','action','exec','queue','script','buildUri','parse','query','search','channel','AllConditions','every','checkConditions','some','AnyConditions','account','chat','operator','upperFirst','AccountId','value','interaction','message','event','membername','lastevent','routeId','mailSubstatus','null','substatus','offlineMessage','created','equals','util','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','socket.io-emitter','popup','url','triggers','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:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:substatus','custom:outgoingmessage','custom:rejectmessage','custom:offlineMessage','emit','info','stringify','prototype','clone','undefined','motionChannel','voice','interface','checkTriggers','hasOwnProperty','checkTrigger'];(function(_0x198e87,_0x27951f){var _0x132b38=function(_0x5912ea){while(--_0x5912ea){_0x198e87['push'](_0x198e87['shift']());}};_0x132b38(++_0x27951f);}(_0x9dfc,0x140));var _0xc9df=function(_0x2bbf4e,_0x21ddbc){_0x2bbf4e=_0x2bbf4e-0x0;var _0x39d499=_0x9dfc[_0x2bbf4e];return _0x39d499;};'use strict';var util=require(_0xc9df('0x0'));var _=require('lodash');var url=require('url');var Mustache=require('mustache');var Redis=require(_0xc9df('0x1'));var urlforward=require(_0xc9df('0x2'));var integration=require(_0xc9df('0x3'));var cmContact=require(_0xc9df('0x4'));var script=require(_0xc9df('0x5'));var config=require(_0xc9df('0x6'));var logger=require(_0xc9df('0x7'))(_0xc9df('0x8'));var ami=require(_0xc9df('0x9'));config[_0xc9df('0xa')]=_['defaults'](config[_0xc9df('0xa')],{'host':_0xc9df('0xb'),'port':0x18eb});var io=require(_0xc9df('0xc'))(new Redis(config[_0xc9df('0xa')]));var operators={'equals':function(_0xded560,_0x59ce91){return _0xded560==_0x59ce91;},'not_equals':function(_0x2eab57,_0x4b3e47){return _0x2eab57!=_0x4b3e47;}};var barAndWebActions=[_0xc9df('0xd'),_0xc9df('0xe'),'winapp'];function Trigger(_0xd25c8a){this[_0xc9df('0xf')]=_0xd25c8a['triggers'];this[_0xc9df('0x10')]=_0xd25c8a[_0xc9df('0x10')];this[_0xc9df('0x11')]=_0xd25c8a[_0xc9df('0x11')];this[_0xc9df('0x12')]=_0xd25c8a[_0xc9df('0x12')];this[_0xc9df('0x13')]=_0xd25c8a[_0xc9df('0x13')];this['zendeskAccounts']=_0xd25c8a[_0xc9df('0x14')];this[_0xc9df('0x15')]=_0xd25c8a[_0xc9df('0x15')];this[_0xc9df('0x16')]=_0xd25c8a['salesforceAccounts'];this[_0xc9df('0x17')]=_0xd25c8a[_0xc9df('0x17')];this[_0xc9df('0x18')]=_0xd25c8a[_0xc9df('0x18')];this[_0xc9df('0x19')]=_0xd25c8a['deskAccounts'];this[_0xc9df('0x1a')]=_0xd25c8a[_0xc9df('0x1a')];this[_0xc9df('0x1b')]=_0xd25c8a[_0xc9df('0x1b')];this[_0xc9df('0x1c')]=_0xd25c8a['dynamics365Accounts'];this[_0xc9df('0x1d')]=_0xd25c8a[_0xc9df('0x1d')];this[_0xc9df('0x1e')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xc9df('0x16')],'freshdesk':this[_0xc9df('0x15')],'sugarcrm':this[_0xc9df('0x17')],'zoho':this[_0xc9df('0x18')],'desk':this[_0xc9df('0x19')],'vtiger':this[_0xc9df('0x1a')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0xc9df('0x1d')],'servicenow':this[_0xc9df('0x1b')]};ami['on'](_0xc9df('0x1f'),this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x22'),this['syncCustomEvent'][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x23'),this[_0xc9df('0x20')]['bind'](this));ami['on'](_0xc9df('0x24'),this[_0xc9df('0x20')]['bind'](this));ami['on'](_0xc9df('0x25'),this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x26'),this[_0xc9df('0x20')]['bind'](this));ami['on']('custom:agentbusy',this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x27'),this['syncCustomEvent'][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x28'),this['syncCustomEvent'][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x29'),this['syncCustomEvent']['bind'](this));ami['on'](_0xc9df('0x2a'),this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x2b'),this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x2c'),this[_0xc9df('0x2d')][_0xc9df('0x21')](this));ami['on']('custom:dialconnect',this[_0xc9df('0x2d')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x2e'),this[_0xc9df('0x2d')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x2f'),this['syncCustomEvent'][_0xc9df('0x21')](this));ami['on']('custom:closedinteraction',this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x30'),this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on']('custom:incomingmessage',this['syncCustomEvent'][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x31'),this[_0xc9df('0x20')]['bind'](this));ami['on']('custom:acceptmessage',this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x32'),this[_0xc9df('0x20')][_0xc9df('0x21')](this));ami['on'](_0xc9df('0x33'),this[_0xc9df('0x20')]['bind'](this));}Trigger['prototype'][_0xc9df('0x34')]=function(_0x52d5f6,_0x48b472,_0x432023){logger[_0xc9df('0x35')](_0x52d5f6,_0x48b472,JSON[_0xc9df('0x36')](_0x432023));io['to'](_0x52d5f6)[_0xc9df('0x34')](_0x48b472,_0x432023);};Trigger[_0xc9df('0x37')][_0xc9df('0x20')]=function(_0x151c8f){var _0x5e384b=_[_0xc9df('0x38')](_0x151c8f);if(typeof _0x5e384b['motionChannel']===_0xc9df('0x39')){_0x5e384b[_0xc9df('0x3a')]=_0xc9df('0x3b');}this['checkTriggers'](_0x5e384b);};Trigger[_0xc9df('0x37')][_0xc9df('0x2d')]=function(_0x3b0ba3){if(this[_0xc9df('0x10')][_0x3b0ba3[_0xc9df('0x3c')]]){this[_0xc9df('0x20')](_0x3b0ba3);}};Trigger[_0xc9df('0x37')][_0xc9df('0x3d')]=function(_0x3ebade){var _0x22ddd4;for(var _0x292739 in this[_0xc9df('0xf')]){if(this['triggers'][_0xc9df('0x3e')](_0x292739)){if(this['triggers'][_0x292739]['status']){_0x22ddd4=this[_0xc9df('0x3f')](this['triggers'][_0x292739],_0x3ebade);if(_0x22ddd4){_[_0xc9df('0x40')](_0x3ebade,_0x3ebade[_0xc9df('0x41')]);for(var _0xc8bfd5=0x0,_0x2e5599,_0x103ff4,_0x1e0c0d;_0xc8bfd5<this[_0xc9df('0xf')][_0x292739][_0xc9df('0x42')][_0xc9df('0x43')];_0xc8bfd5+=0x1){_0x2e5599=this['triggers'][_0x292739]['Actions'][_0xc8bfd5];if(this[_0xc9df('0x10')][_0x3ebade[_0xc9df('0x3c')]]){switch(_0x2e5599['action'][_0xc9df('0x44')]()){case _0xc9df('0x45'):break;case _0xc9df('0x46'):case _0xc9df('0x47'):var _0x12b5f0={};switch(barAndWebActions[_0x2e5599[_0xc9df('0x48')]]){case'popup':_0x12b5f0[_0xc9df('0x49')]=_0x2e5599[_0xc9df('0x4a')];_0x12b5f0['html']=this[_0xc9df('0x12')][_0x2e5599[_0xc9df('0x4a')]]?Mustache['render'](this['templates'][_0x2e5599[_0xc9df('0x4a')]][_0xc9df('0x4b')],_0x3ebade):_0xc9df('0x4c');break;case'url':_0x12b5f0[_0xc9df('0x4d')]=this['buildUri'](_0x2e5599[_0xc9df('0x4a')],_0x3ebade,_['isNil'](_0x2e5599['data3'])?!![]:parseInt(_0x2e5599[_0xc9df('0x4e')],0xa));if(_[_0xc9df('0x4f')](_0x2e5599[_0xc9df('0x50')])){_0x12b5f0[_0xc9df('0x51')]='0';}else{_0x12b5f0['uriLocation']=_0x2e5599[_0xc9df('0x50')];_0x12b5f0['windowWidth']=_['isNil'](_0x2e5599[_0xc9df('0x52')])?_0xc9df('0x53'):_0x2e5599['data5'];_0x12b5f0[_0xc9df('0x54')]=_['isNil'](_0x2e5599[_0xc9df('0x55')])?_0xc9df('0x56'):_0x2e5599[_0xc9df('0x55')];}break;case _0xc9df('0x57'):_0x12b5f0[_0xc9df('0x58')]=_0x2e5599[_0xc9df('0x4a')]?Mustache[_0xc9df('0x59')](_0x2e5599[_0xc9df('0x4a')],_0x3ebade):'';_0x12b5f0[_0xc9df('0x5a')]=_0x2e5599[_0xc9df('0x4e')]?Mustache['render'](_0x2e5599[_0xc9df('0x4e')],_0x3ebade):'';break;}this[_0xc9df('0x34')](util[_0xc9df('0x5b')](_0xc9df('0x5c'),this['agents'][_0x3ebade[_0xc9df('0x3c')]][_0xc9df('0x5d')]),util[_0xc9df('0x5b')](_0xc9df('0x5e'),_0x2e5599['action'][_0xc9df('0x44')](),barAndWebActions[_0x2e5599[_0xc9df('0x48')]]),_[_0xc9df('0x40')](_0x12b5f0,_0x3ebade));break;case'jscripty':this[_0xc9df('0x34')](util['format'](_0xc9df('0x5c'),this[_0xc9df('0x10')][_0x3ebade[_0xc9df('0x3c')]][_0xc9df('0x5d')]),util[_0xc9df('0x5b')](_0xc9df('0x5f'),_0x2e5599[_0xc9df('0x60')][_0xc9df('0x44')]()),_[_0xc9df('0x40')]({'ProjectId':parseInt(_0x2e5599[_0xc9df('0x48')],0xa)},_0x3ebade));break;default:this[_0xc9df('0x34')](util[_0xc9df('0x5b')]('user:%s',this[_0xc9df('0x10')][_0x3ebade['interface']][_0xc9df('0x5d')]),util['format'](_0xc9df('0x5f'),_0x2e5599[_0xc9df('0x60')][_0xc9df('0x44')]()),_[_0xc9df('0x40')]({},_0x2e5599,_0x3ebade));}}switch(_0x2e5599['action'][_0xc9df('0x44')]()){case'contactmanager':cmContact[_0xc9df('0x61')](this[_0xc9df('0x10')][_0x3ebade['interface']],this[_0xc9df('0xf')][_0x292739],_0x2e5599,_0x3ebade);break;case'integration':integration['exec'](_0x2e5599,_0x3ebade,this[_0xc9df('0x1e')],this[_0xc9df('0x10')][_0x3ebade[_0xc9df('0x3c')]],this[_0xc9df('0x11')][_0x3ebade[_0xc9df('0x62')]],this[_0xc9df('0x13')][_0x3ebade['routeId']]);break;case'urlforward':urlforward['exec'](_0x2e5599,_0x3ebade);break;case _0xc9df('0x63'):script[_0xc9df('0x61')](_0x2e5599,_0x3ebade);break;}}}}}}};Trigger[_0xc9df('0x37')][_0xc9df('0x64')]=function(_0x19a241,_0x3d52a0,_0x2385fb){var _0xac7eee=url[_0xc9df('0x65')](Mustache[_0xc9df('0x59')](_0x19a241,_0x3d52a0),!![]);if(_0x2385fb){_[_0xc9df('0x40')](_0xac7eee[_0xc9df('0x66')],_0x3d52a0);}delete _0xac7eee[_0xc9df('0x67')];var _0x48caae=url['format'](_0xac7eee);_0x48caae=_0x48caae['replace'](/\/\?/g,'?');return _0x48caae;};Trigger[_0xc9df('0x37')][_0xc9df('0x3f')]=function(_0x3aacfb,_0x2a1a95){var _0x114593=!![];var _0x39f98f=!![];var _0x5c2e9b=![];if(_0x3aacfb[_0xc9df('0x68')]===_0x2a1a95[_0xc9df('0x3a')]){_0x5c2e9b=!![];}if(_0x3aacfb[_0xc9df('0x69')][_0xc9df('0x43')]){_0x114593=_[_0xc9df('0x6a')](_0x3aacfb[_0xc9df('0x69')],this[_0xc9df('0x6b')](_0x2a1a95,_0x3aacfb['channel']));}if(_0x3aacfb['AnyConditions']['length']){_0x39f98f=_[_0xc9df('0x6c')](_0x3aacfb[_0xc9df('0x6d')],this[_0xc9df('0x6b')](_0x2a1a95,_0x3aacfb[_0xc9df('0x68')]));}return _0x5c2e9b&&_0x114593&&_0x39f98f;};Trigger[_0xc9df('0x37')][_0xc9df('0x6b')]=function(_0x16bb00,_0x5b742a){return function(_0xfd4b83){switch(_0xfd4b83['field']){case _0xc9df('0x6e'):if(_0x16bb00['channel']===_0x5b742a){if(_0x5b742a===_0xc9df('0x6f')){return _0x16bb00['ChatWebsiteId']?operators[_0xfd4b83[_0xc9df('0x70')]](Number(_0xfd4b83['value']),_0x16bb00['ChatWebsiteId']):![];}else{return _0x16bb00[_[_0xc9df('0x71')](_0x5b742a)+_0xc9df('0x72')]?operators[_0xfd4b83[_0xc9df('0x70')]](Number(_0xfd4b83[_0xc9df('0x73')]),_0x16bb00[_['upperFirst'](_0x5b742a)+'AccountId']):![];}}break;case _0xc9df('0x74'):case _0xc9df('0x75'):if(_0x16bb00[_0xc9df('0x68')]===_0x5b742a){return _0x16bb00[_0xc9df('0x76')]?operators[_0xfd4b83['operator']](_0xfd4b83['value'],_0x16bb00[_0xc9df('0x76')]):![];}break;case _0xc9df('0x62'):return _0x16bb00[_0xc9df('0x62')]?operators[_0xfd4b83[_0xc9df('0x70')]](_0xfd4b83[_0xc9df('0x73')],_0x16bb00[_0xc9df('0x62')]):![];case'agent':return _0x16bb00[_0xc9df('0x77')]?operators[_0xfd4b83[_0xc9df('0x70')]](_0xfd4b83[_0xc9df('0x73')],_0x16bb00['membername']):![];case'lastevent':return _0x16bb00[_0xc9df('0x78')]?operators[_0xfd4b83[_0xc9df('0x70')]](_0xfd4b83[_0xc9df('0x73')],_0x16bb00[_0xc9df('0x78')]):![];case _0xc9df('0x79'):return _0x16bb00[_0xc9df('0x79')]?operators[_0xfd4b83['operator']](_0xfd4b83['value'],_0x16bb00[_0xc9df('0x79')]):![];case _0xc9df('0x7a'):if(_0xfd4b83[_0xc9df('0x73')]===_0xc9df('0x7b'))_0xfd4b83['value']=null;return typeof _0x16bb00[_0xc9df('0x7c')]!==_0xc9df('0x39')?operators[_0xfd4b83['operator']](_0xfd4b83[_0xc9df('0x73')],_0x16bb00[_0xc9df('0x7c')]):![];case _0xc9df('0x7d'):if(_0x16bb00[_0xc9df('0x68')]===_0x5b742a){return _0xfd4b83[_0xc9df('0x73')]===_0xc9df('0x7e')&&_0xfd4b83['operator']===_0xc9df('0x7f')?!![]:![];}break;}return![];};};module['exports']=Trigger;