1dfb11f211a4bb8b0670f6332f92d8b3188b1914
[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 _0xbe51=['freshsalesAccounts','accounts','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','debug','checkTriggers','hasOwnProperty','status','variables','length','Actions','interface','action','contactmanager','motionbar','data1','TemplateId','data2','html','render','uri','buildUri','data3','isNil','data4','location','windowWidth','data5','800','windowHeight','data6','winApplication','user:%s','format','trigger:%s:%s','toLowerCase','merge','jscripty','name','trigger:%s','exec','integration','queue','script','parse','replace','checkTrigger','AllConditions','every','checkConditions','AnyConditions','channel','inspect','evt','field','chat','ChatWebsiteId','operator','value','AccountId','interaction','event','membername','lastevent','routeId','mailSubstatus','substatus','offlineMessage','equals','util','lodash','mustache','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts'];(function(_0x48c7a2,_0x1b393e){var _0x43c45e=function(_0x44d353){while(--_0x44d353){_0x48c7a2['push'](_0x48c7a2['shift']());}};_0x43c45e(++_0x1b393e);}(_0xbe51,0x1e2));var _0x1be5=function(_0x462b65,_0x208e50){_0x462b65=_0x462b65-0x0;var _0x41cbf7=_0xbe51[_0x462b65];return _0x41cbf7;};'use strict';var util=require(_0x1be5('0x0'));var _=require(_0x1be5('0x1'));var url=require('url');var Mustache=require(_0x1be5('0x2'));var Redis=require('ioredis');var urlforward=require(_0x1be5('0x3'));var integration=require(_0x1be5('0x4'));var cmContact=require(_0x1be5('0x5'));var script=require(_0x1be5('0x6'));var config=require(_0x1be5('0x7'));var logger=require(_0x1be5('0x8'))(_0x1be5('0x9'));var ami=require(_0x1be5('0xa'));config[_0x1be5('0xb')]=_[_0x1be5('0xc')](config[_0x1be5('0xb')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1be5('0xb')]));var operators={'equals':function(_0x4e4244,_0xf08be0){return _0x4e4244==_0xf08be0;},'not_equals':function(_0x36c7c2,_0x5aa1bc){return _0x36c7c2!=_0x5aa1bc;}};var barAndWebActions=[_0x1be5('0xd'),_0x1be5('0xe'),_0x1be5('0xf')];function Trigger(_0x173fea){this[_0x1be5('0x10')]=_0x173fea[_0x1be5('0x10')];this[_0x1be5('0x11')]=_0x173fea['agents'];this[_0x1be5('0x12')]=_0x173fea['voiceQueues'];this[_0x1be5('0x13')]=_0x173fea[_0x1be5('0x13')];this[_0x1be5('0x14')]=_0x173fea['voiceExtensions'];this[_0x1be5('0x15')]=_0x173fea['zendeskAccounts'];this[_0x1be5('0x16')]=_0x173fea[_0x1be5('0x16')];this[_0x1be5('0x17')]=_0x173fea[_0x1be5('0x17')];this[_0x1be5('0x18')]=_0x173fea[_0x1be5('0x18')];this[_0x1be5('0x19')]=_0x173fea['zohoAccounts'];this[_0x1be5('0x1a')]=_0x173fea[_0x1be5('0x1a')];this[_0x1be5('0x1b')]=_0x173fea[_0x1be5('0x1b')];this[_0x1be5('0x1c')]=_0x173fea[_0x1be5('0x1c')];this[_0x1be5('0x1d')]=_0x173fea[_0x1be5('0x1d')];this['freshsalesAccounts']=_0x173fea[_0x1be5('0x1e')];this[_0x1be5('0x1f')]={'zendesk':this['zendeskAccounts'],'salesforce':this['salesforceAccounts'],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x1be5('0x18')],'zoho':this[_0x1be5('0x19')],'desk':this[_0x1be5('0x1a')],'vtiger':this[_0x1be5('0x1b')],'dynamics365':this[_0x1be5('0x1d')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x1be5('0x1c')]};ami['on']('custom:agentcalled',this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x21'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x23'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x24'),this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x25'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x26'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x27'),this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on']('custom:agentcongestion',this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x28'),this[_0x1be5('0x22')]['bind'](this));ami['on'](_0x1be5('0x29'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x2a'),this[_0x1be5('0x22')]['bind'](this));ami['on'](_0x1be5('0x2b'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x2c'),this[_0x1be5('0x2d')]['bind'](this));ami['on'](_0x1be5('0x2e'),this[_0x1be5('0x2d')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x2f'),this['syncAgentDial'][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x30'),this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x31'),this['syncCustomEvent']['bind'](this));ami['on'](_0x1be5('0x32'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x33'),this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x34'),this[_0x1be5('0x22')][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x35'),this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on'](_0x1be5('0x36'),this['syncCustomEvent'][_0x1be5('0x20')](this));ami['on']('custom:offlineMessage',this['syncCustomEvent'][_0x1be5('0x20')](this));}Trigger[_0x1be5('0x37')][_0x1be5('0x38')]=function(_0x5794c5,_0x7a4c45,_0x5e030f){logger[_0x1be5('0x39')](_0x5794c5,_0x7a4c45,JSON[_0x1be5('0x3a')](_0x5e030f));io['to'](_0x5794c5)[_0x1be5('0x38')](_0x7a4c45,_0x5e030f);};Trigger[_0x1be5('0x37')]['syncCustomEvent']=function(_0x29c481){var _0x3bffc7=_[_0x1be5('0x3b')](_0x29c481);if(typeof _0x3bffc7[_0x1be5('0x3c')]===_0x1be5('0x3d')){_0x3bffc7[_0x1be5('0x3c')]=_0x1be5('0x3e');}logger[_0x1be5('0x3f')](_0x1be5('0x22'),util['inspect'](_0x3bffc7,{'showHidden':!![],'depth':null}));this['checkTriggers'](_0x3bffc7);};Trigger['prototype'][_0x1be5('0x2d')]=function(_0x1944a0){if(this[_0x1be5('0x11')][_0x1944a0['interface']]){this[_0x1be5('0x22')](_0x1944a0);}};Trigger['prototype'][_0x1be5('0x40')]=function(_0x21df7c){var _0xf5b7e4;for(var _0x20496d in this[_0x1be5('0x10')]){if(this[_0x1be5('0x10')][_0x1be5('0x41')](_0x20496d)){if(this[_0x1be5('0x10')][_0x20496d][_0x1be5('0x42')]){_0xf5b7e4=this['checkTrigger'](this[_0x1be5('0x10')][_0x20496d],_0x21df7c);if(_0xf5b7e4){_['merge'](_0x21df7c,_0x21df7c[_0x1be5('0x43')]);for(var _0x338359=0x0,_0x29bb39,_0x3fd64c,_0x439f63;_0x338359<this[_0x1be5('0x10')][_0x20496d]['Actions'][_0x1be5('0x44')];_0x338359+=0x1){_0x29bb39=this[_0x1be5('0x10')][_0x20496d][_0x1be5('0x45')][_0x338359];if(this[_0x1be5('0x11')][_0x21df7c[_0x1be5('0x46')]]){switch(_0x29bb39[_0x1be5('0x47')]['toLowerCase']()){case _0x1be5('0x48'):break;case _0x1be5('0x49'):case'browser':var _0x27958a={};switch(barAndWebActions[_0x29bb39[_0x1be5('0x4a')]]){case _0x1be5('0xd'):_0x27958a[_0x1be5('0x4b')]=_0x29bb39[_0x1be5('0x4c')];_0x27958a[_0x1be5('0x4d')]=this[_0x1be5('0x13')][_0x29bb39[_0x1be5('0x4c')]]?Mustache[_0x1be5('0x4e')](this[_0x1be5('0x13')][_0x29bb39['data2']]['html'],_0x21df7c):'template\x20not\x20found';break;case _0x1be5('0xe'):_0x27958a[_0x1be5('0x4f')]=this[_0x1be5('0x50')](_0x29bb39[_0x1be5('0x4c')],_0x21df7c,_['isNil'](_0x29bb39[_0x1be5('0x51')])?!![]:parseInt(_0x29bb39['data3'],0xa));if(_[_0x1be5('0x52')](_0x29bb39[_0x1be5('0x53')])){_0x27958a[_0x1be5('0x54')]='0';}else{_0x27958a['uriLocation']=_0x29bb39['data4'];_0x27958a[_0x1be5('0x55')]=_['isNil'](_0x29bb39[_0x1be5('0x56')])?_0x1be5('0x57'):_0x29bb39[_0x1be5('0x56')];_0x27958a[_0x1be5('0x58')]=_['isNil'](_0x29bb39['data6'])?'600':_0x29bb39[_0x1be5('0x59')];}break;case'winapp':_0x27958a[_0x1be5('0x5a')]=_0x29bb39['data2']?Mustache[_0x1be5('0x4e')](_0x29bb39['data2'],_0x21df7c):'';_0x27958a['winArguments']=_0x29bb39['data3']?Mustache[_0x1be5('0x4e')](_0x29bb39[_0x1be5('0x51')],_0x21df7c):'';break;}this[_0x1be5('0x38')](util['format'](_0x1be5('0x5b'),this['agents'][_0x21df7c[_0x1be5('0x46')]]['name']),util[_0x1be5('0x5c')](_0x1be5('0x5d'),_0x29bb39['action'][_0x1be5('0x5e')](),barAndWebActions[_0x29bb39[_0x1be5('0x4a')]]),_[_0x1be5('0x5f')](_0x27958a,_0x21df7c));break;case _0x1be5('0x60'):this['emit'](util['format'](_0x1be5('0x5b'),this[_0x1be5('0x11')][_0x21df7c[_0x1be5('0x46')]][_0x1be5('0x61')]),util[_0x1be5('0x5c')](_0x1be5('0x62'),_0x29bb39[_0x1be5('0x47')][_0x1be5('0x5e')]()),_['merge']({'ProjectId':parseInt(_0x29bb39[_0x1be5('0x4a')],0xa)},_0x21df7c));break;default:this[_0x1be5('0x38')](util[_0x1be5('0x5c')](_0x1be5('0x5b'),this[_0x1be5('0x11')][_0x21df7c[_0x1be5('0x46')]][_0x1be5('0x61')]),util['format'](_0x1be5('0x62'),_0x29bb39[_0x1be5('0x47')][_0x1be5('0x5e')]()),_[_0x1be5('0x5f')]({},_0x29bb39,_0x21df7c));}}switch(_0x29bb39[_0x1be5('0x47')][_0x1be5('0x5e')]()){case'contactmanager':cmContact[_0x1be5('0x63')](this[_0x1be5('0x11')][_0x21df7c[_0x1be5('0x46')]],this['triggers'][_0x20496d],_0x29bb39,_0x21df7c);break;case _0x1be5('0x64'):integration[_0x1be5('0x63')](_0x29bb39,_0x21df7c,this[_0x1be5('0x1f')],this[_0x1be5('0x11')][_0x21df7c['interface']],this[_0x1be5('0x12')][_0x21df7c[_0x1be5('0x65')]],this[_0x1be5('0x14')][_0x21df7c['routeId']]);break;case'urlforward':urlforward['exec'](_0x29bb39,_0x21df7c);break;case _0x1be5('0x66'):script[_0x1be5('0x63')](_0x29bb39,_0x21df7c);break;}}}}}}};Trigger[_0x1be5('0x37')][_0x1be5('0x50')]=function(_0x2d4b6a,_0x17b295,_0x5f2a40){var _0x12f033=url[_0x1be5('0x67')](Mustache[_0x1be5('0x4e')](_0x2d4b6a,_0x17b295),!![]);if(_0x5f2a40){_[_0x1be5('0x5f')](_0x12f033['query'],_0x17b295);}delete _0x12f033['search'];var _0x321c51=url[_0x1be5('0x5c')](_0x12f033);_0x321c51=_0x321c51[_0x1be5('0x68')](/\/\?/g,'?');return _0x321c51;};Trigger['prototype'][_0x1be5('0x69')]=function(_0x4b5a8c,_0x546752){var _0x1fc3ff=!![];var _0x779a18=!![];var _0x456cf5=![];if(_0x4b5a8c['channel']===_0x546752[_0x1be5('0x3c')]){_0x456cf5=!![];}if(_0x4b5a8c[_0x1be5('0x6a')][_0x1be5('0x44')]){_0x1fc3ff=_[_0x1be5('0x6b')](_0x4b5a8c[_0x1be5('0x6a')],this[_0x1be5('0x6c')](_0x546752,_0x4b5a8c['channel']));}if(_0x4b5a8c['AnyConditions']['length']){_0x779a18=_['some'](_0x4b5a8c[_0x1be5('0x6d')],this[_0x1be5('0x6c')](_0x546752,_0x4b5a8c[_0x1be5('0x6e')]));}var _0x5cbd2b=_0x456cf5&&_0x1fc3ff&&_0x779a18;logger[_0x1be5('0x3f')]('checkTrigger:\x20trigger',util[_0x1be5('0x6f')](_0x4b5a8c,{'showHidden':!![],'depth':null}),_0x1be5('0x70'),util['inspect'](_0x546752,{'showHidden':!![],'depth':null}),_0x456cf5,_0x1fc3ff,_0x779a18);return _0x5cbd2b;};Trigger['prototype'][_0x1be5('0x6c')]=function(_0x2be8fb,_0x41ffa0){return function(_0x17d8c6){switch(_0x17d8c6[_0x1be5('0x71')]){case'account':if(_0x2be8fb['channel']===_0x41ffa0){if(_0x41ffa0===_0x1be5('0x72')){return _0x2be8fb[_0x1be5('0x73')]?operators[_0x17d8c6[_0x1be5('0x74')]](Number(_0x17d8c6[_0x1be5('0x75')]),_0x2be8fb[_0x1be5('0x73')]):![];}else{return _0x2be8fb[_['upperFirst'](_0x41ffa0)+'AccountId']?operators[_0x17d8c6[_0x1be5('0x74')]](Number(_0x17d8c6[_0x1be5('0x75')]),_0x2be8fb[_['upperFirst'](_0x41ffa0)+_0x1be5('0x76')]):![];}}break;case _0x1be5('0x77'):case'message':if(_0x2be8fb['channel']===_0x41ffa0){return _0x2be8fb[_0x1be5('0x78')]?operators[_0x17d8c6[_0x1be5('0x74')]](_0x17d8c6[_0x1be5('0x75')],_0x2be8fb[_0x1be5('0x78')]):![];}break;case'queue':return _0x2be8fb[_0x1be5('0x65')]?operators[_0x17d8c6[_0x1be5('0x74')]](_0x17d8c6[_0x1be5('0x75')],_0x2be8fb[_0x1be5('0x65')]):![];case'agent':return _0x2be8fb[_0x1be5('0x79')]?operators[_0x17d8c6[_0x1be5('0x74')]](_0x17d8c6[_0x1be5('0x75')],_0x2be8fb[_0x1be5('0x79')]):![];case'lastevent':return _0x2be8fb[_0x1be5('0x7a')]?operators[_0x17d8c6[_0x1be5('0x74')]](_0x17d8c6['value'],_0x2be8fb[_0x1be5('0x7a')]):![];case _0x1be5('0x7b'):return _0x2be8fb['routeId']?operators[_0x17d8c6[_0x1be5('0x74')]](_0x17d8c6[_0x1be5('0x75')],_0x2be8fb[_0x1be5('0x7b')]):![];case _0x1be5('0x7c'):if(_0x17d8c6[_0x1be5('0x75')]==='null')_0x17d8c6[_0x1be5('0x75')]=null;return typeof _0x2be8fb[_0x1be5('0x7d')]!==_0x1be5('0x3d')?operators[_0x17d8c6['operator']](_0x17d8c6[_0x1be5('0x75')],_0x2be8fb[_0x1be5('0x7d')]):![];case _0x1be5('0x7e'):if(_0x2be8fb[_0x1be5('0x6e')]===_0x41ffa0){return _0x17d8c6[_0x1be5('0x75')]==='created'&&_0x17d8c6['operator']===_0x1be5('0x7f')?!![]:![];}break;}return![];};};module['exports']=Trigger;