06c994562af6c8dc3f0194b0edb5dd098afc7d00
[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 _0x24cf=['syncCustomEvent','bind','custom:agentconnect','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','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:offlineMessage','info','stringify','emit','prototype','motionChannel','undefined','voice','debug','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','toLowerCase','contactmanager','data1','TemplateId','data2','render','html','template\x20not\x20found','uri','buildUri','isNil','data3','location','uriLocation','data4','windowWidth','data5','800','windowHeight','data6','winapp','winApplication','winArguments','format','user:%s','interface','jscripty','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','search','replace','length','every','AllConditions','checkConditions','channel','AnyConditions','checkTrigger:\x20trigger','evt','inspect','account','ChatWebsiteId','value','AccountId','operator','upperFirst','interaction','event','agent','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','equals','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','socket.io-emitter','popup','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts'];(function(_0x4af01e,_0x543f5c){var _0x178c11=function(_0x2c2f76){while(--_0x2c2f76){_0x4af01e['push'](_0x4af01e['shift']());}};_0x178c11(++_0x543f5c);}(_0x24cf,0x64));var _0xf24c=function(_0x1ed939,_0x39c769){_0x1ed939=_0x1ed939-0x0;var _0xf232a6=_0x24cf[_0x1ed939];return _0xf232a6;};'use strict';var util=require('util');var _=require(_0xf24c('0x0'));var url=require(_0xf24c('0x1'));var Mustache=require(_0xf24c('0x2'));var Redis=require(_0xf24c('0x3'));var urlforward=require(_0xf24c('0x4'));var integration=require(_0xf24c('0x5'));var cmContact=require(_0xf24c('0x6'));var script=require(_0xf24c('0x7'));var config=require(_0xf24c('0x8'));var logger=require(_0xf24c('0x9'))('trigger');var ami=require(_0xf24c('0xa'));config[_0xf24c('0xb')]=_[_0xf24c('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xf24c('0xd'))(new Redis(config[_0xf24c('0xb')]));var operators={'equals':function(_0xfc5697,_0x219fc2){return _0xfc5697==_0x219fc2;},'not_equals':function(_0x20ab7c,_0x503bef){return _0x20ab7c!=_0x503bef;}};var barAndWebActions=[_0xf24c('0xe'),_0xf24c('0x1'),'winapp'];function Trigger(_0x5761f2){this[_0xf24c('0xf')]=_0x5761f2[_0xf24c('0xf')];this[_0xf24c('0x10')]=_0x5761f2[_0xf24c('0x10')];this[_0xf24c('0x11')]=_0x5761f2['voiceQueues'];this[_0xf24c('0x12')]=_0x5761f2[_0xf24c('0x12')];this['voiceExtensions']=_0x5761f2[_0xf24c('0x13')];this[_0xf24c('0x14')]=_0x5761f2[_0xf24c('0x14')];this['freshdeskAccounts']=_0x5761f2[_0xf24c('0x15')];this[_0xf24c('0x16')]=_0x5761f2[_0xf24c('0x16')];this[_0xf24c('0x17')]=_0x5761f2['sugarcrmAccounts'];this['zohoAccounts']=_0x5761f2[_0xf24c('0x18')];this[_0xf24c('0x19')]=_0x5761f2[_0xf24c('0x19')];this[_0xf24c('0x1a')]=_0x5761f2[_0xf24c('0x1a')];this['servicenowAccounts']=_0x5761f2[_0xf24c('0x1b')];this[_0xf24c('0x1c')]=_0x5761f2[_0xf24c('0x1c')];this[_0xf24c('0x1d')]=_0x5761f2[_0xf24c('0x1d')];this[_0xf24c('0x1e')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xf24c('0x16')],'freshdesk':this[_0xf24c('0x15')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xf24c('0x18')],'desk':this['deskAccounts'],'vtiger':this[_0xf24c('0x1a')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0xf24c('0x1d')],'servicenow':this['servicenowAccounts']};ami['on']('custom:agentcalled',this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x21'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on']('custom:agentringnoanswer',this[_0xf24c('0x1f')]['bind'](this));ami['on'](_0xf24c('0x22'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x23'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x24'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on']('custom:agentbusy',this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x25'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x26'),this['syncCustomEvent'][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x27'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0xf24c('0x29'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x2a'),this[_0xf24c('0x2b')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x2c'),this[_0xf24c('0x2b')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x2d'),this[_0xf24c('0x2b')]['bind'](this));ami['on'](_0xf24c('0x2e'),this['syncCustomEvent'][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x2f'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x30'),this['syncCustomEvent']['bind'](this));ami['on'](_0xf24c('0x31'),this['syncCustomEvent'][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x32'),this[_0xf24c('0x1f')][_0xf24c('0x20')](this));ami['on'](_0xf24c('0x33'),this['syncCustomEvent']['bind'](this));ami['on']('custom:rejectmessage',this[_0xf24c('0x1f')]['bind'](this));ami['on'](_0xf24c('0x34'),this[_0xf24c('0x1f')]['bind'](this));}Trigger['prototype']['emit']=function(_0x3ec28f,_0xed1464,_0x55c273){logger[_0xf24c('0x35')](_0x3ec28f,_0xed1464,JSON[_0xf24c('0x36')](_0x55c273));io['to'](_0x3ec28f)[_0xf24c('0x37')](_0xed1464,_0x55c273);};Trigger[_0xf24c('0x38')][_0xf24c('0x1f')]=function(_0x1d4cc9){var _0x25e452=_['clone'](_0x1d4cc9);if(typeof _0x25e452[_0xf24c('0x39')]===_0xf24c('0x3a')){_0x25e452['motionChannel']=_0xf24c('0x3b');}logger[_0xf24c('0x3c')]('syncCustomEvent',util['inspect'](_0x25e452,{'showHidden':!![],'depth':null}));this[_0xf24c('0x3d')](_0x25e452);};Trigger['prototype'][_0xf24c('0x2b')]=function(_0x462cdc){if(this[_0xf24c('0x10')][_0x462cdc['interface']]){this[_0xf24c('0x1f')](_0x462cdc);}};Trigger[_0xf24c('0x38')]['checkTriggers']=function(_0x1ac047){var _0x121d46;for(var _0x42edcf in this['triggers']){if(this[_0xf24c('0xf')][_0xf24c('0x3e')](_0x42edcf)){if(this['triggers'][_0x42edcf][_0xf24c('0x3f')]){_0x121d46=this[_0xf24c('0x40')](this[_0xf24c('0xf')][_0x42edcf],_0x1ac047);if(_0x121d46){_[_0xf24c('0x41')](_0x1ac047,_0x1ac047[_0xf24c('0x42')]);for(var _0x3f9331=0x0,_0x5cc7ad,_0x5cfcfd,_0x3135bb;_0x3f9331<this[_0xf24c('0xf')][_0x42edcf][_0xf24c('0x43')]['length'];_0x3f9331+=0x1){_0x5cc7ad=this[_0xf24c('0xf')][_0x42edcf][_0xf24c('0x43')][_0x3f9331];if(this[_0xf24c('0x10')][_0x1ac047['interface']]){switch(_0x5cc7ad[_0xf24c('0x44')][_0xf24c('0x45')]()){case _0xf24c('0x46'):break;case'motionbar':case'browser':var _0x50c234={};switch(barAndWebActions[_0x5cc7ad[_0xf24c('0x47')]]){case _0xf24c('0xe'):_0x50c234[_0xf24c('0x48')]=_0x5cc7ad['data2'];_0x50c234['html']=this['templates'][_0x5cc7ad[_0xf24c('0x49')]]?Mustache[_0xf24c('0x4a')](this[_0xf24c('0x12')][_0x5cc7ad[_0xf24c('0x49')]][_0xf24c('0x4b')],_0x1ac047):_0xf24c('0x4c');break;case'url':_0x50c234[_0xf24c('0x4d')]=this[_0xf24c('0x4e')](_0x5cc7ad[_0xf24c('0x49')],_0x1ac047,_[_0xf24c('0x4f')](_0x5cc7ad[_0xf24c('0x50')])?!![]:parseInt(_0x5cc7ad[_0xf24c('0x50')],0xa));if(_[_0xf24c('0x4f')](_0x5cc7ad['data4'])){_0x50c234[_0xf24c('0x51')]='0';}else{_0x50c234[_0xf24c('0x52')]=_0x5cc7ad[_0xf24c('0x53')];_0x50c234[_0xf24c('0x54')]=_[_0xf24c('0x4f')](_0x5cc7ad[_0xf24c('0x55')])?_0xf24c('0x56'):_0x5cc7ad[_0xf24c('0x55')];_0x50c234[_0xf24c('0x57')]=_[_0xf24c('0x4f')](_0x5cc7ad['data6'])?'600':_0x5cc7ad[_0xf24c('0x58')];}break;case _0xf24c('0x59'):_0x50c234[_0xf24c('0x5a')]=_0x5cc7ad[_0xf24c('0x49')]?Mustache[_0xf24c('0x4a')](_0x5cc7ad['data2'],_0x1ac047):'';_0x50c234[_0xf24c('0x5b')]=_0x5cc7ad[_0xf24c('0x50')]?Mustache[_0xf24c('0x4a')](_0x5cc7ad[_0xf24c('0x50')],_0x1ac047):'';break;}this['emit'](util[_0xf24c('0x5c')](_0xf24c('0x5d'),this[_0xf24c('0x10')][_0x1ac047[_0xf24c('0x5e')]]['name']),util['format']('trigger:%s:%s',_0x5cc7ad[_0xf24c('0x44')][_0xf24c('0x45')](),barAndWebActions[_0x5cc7ad[_0xf24c('0x47')]]),_['merge'](_0x50c234,_0x1ac047));break;case _0xf24c('0x5f'):this[_0xf24c('0x37')](util['format'](_0xf24c('0x5d'),this[_0xf24c('0x10')][_0x1ac047[_0xf24c('0x5e')]][_0xf24c('0x60')]),util[_0xf24c('0x5c')](_0xf24c('0x61'),_0x5cc7ad[_0xf24c('0x44')][_0xf24c('0x45')]()),_['merge']({'ProjectId':parseInt(_0x5cc7ad['data1'],0xa)},_0x1ac047));break;default:this['emit'](util[_0xf24c('0x5c')]('user:%s',this['agents'][_0x1ac047[_0xf24c('0x5e')]][_0xf24c('0x60')]),util['format'](_0xf24c('0x61'),_0x5cc7ad[_0xf24c('0x44')][_0xf24c('0x45')]()),_['merge']({},_0x5cc7ad,_0x1ac047));}}switch(_0x5cc7ad[_0xf24c('0x44')][_0xf24c('0x45')]()){case _0xf24c('0x46'):cmContact[_0xf24c('0x62')](this[_0xf24c('0x10')][_0x1ac047[_0xf24c('0x5e')]],this[_0xf24c('0xf')][_0x42edcf],_0x5cc7ad,_0x1ac047);break;case _0xf24c('0x63'):integration[_0xf24c('0x62')](_0x5cc7ad,_0x1ac047,this['accounts'],this[_0xf24c('0x10')][_0x1ac047['interface']],this[_0xf24c('0x11')][_0x1ac047[_0xf24c('0x64')]],this[_0xf24c('0x13')][_0x1ac047[_0xf24c('0x65')]]);break;case _0xf24c('0x66'):urlforward[_0xf24c('0x62')](_0x5cc7ad,_0x1ac047);break;case _0xf24c('0x67'):script[_0xf24c('0x62')](_0x5cc7ad,_0x1ac047);break;}}}}}}};Trigger[_0xf24c('0x38')][_0xf24c('0x4e')]=function(_0x12033c,_0x3783da,_0x483c7e){var _0x54386a=url['parse'](Mustache[_0xf24c('0x4a')](_0x12033c,_0x3783da),!![]);if(_0x483c7e){_[_0xf24c('0x41')](_0x54386a['query'],_0x3783da);}delete _0x54386a[_0xf24c('0x68')];var _0x5d2852=url[_0xf24c('0x5c')](_0x54386a);_0x5d2852=_0x5d2852[_0xf24c('0x69')](/\/\?/g,'?');return _0x5d2852;};Trigger['prototype'][_0xf24c('0x40')]=function(_0x16ecfa,_0x345b6c){var _0x447aca=!![];var _0x11e355=!![];var _0x8fea39=![];if(_0x16ecfa['channel']===_0x345b6c[_0xf24c('0x39')]){_0x8fea39=!![];}if(_0x16ecfa['AllConditions'][_0xf24c('0x6a')]){_0x447aca=_[_0xf24c('0x6b')](_0x16ecfa[_0xf24c('0x6c')],this[_0xf24c('0x6d')](_0x345b6c,_0x16ecfa[_0xf24c('0x6e')]));}if(_0x16ecfa[_0xf24c('0x6f')][_0xf24c('0x6a')]){_0x11e355=_['some'](_0x16ecfa[_0xf24c('0x6f')],this['checkConditions'](_0x345b6c,_0x16ecfa[_0xf24c('0x6e')]));}var _0x30c551=_0x8fea39&&_0x447aca&&_0x11e355;logger[_0xf24c('0x3c')](_0xf24c('0x70'),util['inspect'](_0x16ecfa,{'showHidden':!![],'depth':null}),_0xf24c('0x71'),util[_0xf24c('0x72')](_0x345b6c,{'showHidden':!![],'depth':null}),_0x8fea39,_0x447aca,_0x11e355);return _0x30c551;};Trigger[_0xf24c('0x38')][_0xf24c('0x6d')]=function(_0x2b463b,_0x4b955f){return function(_0x547bbf){switch(_0x547bbf['field']){case _0xf24c('0x73'):if(_0x2b463b['channel']===_0x4b955f){if(_0x4b955f==='chat'){return _0x2b463b[_0xf24c('0x74')]?operators[_0x547bbf['operator']](Number(_0x547bbf[_0xf24c('0x75')]),_0x2b463b[_0xf24c('0x74')]):![];}else{return _0x2b463b[_['upperFirst'](_0x4b955f)+_0xf24c('0x76')]?operators[_0x547bbf[_0xf24c('0x77')]](Number(_0x547bbf['value']),_0x2b463b[_[_0xf24c('0x78')](_0x4b955f)+_0xf24c('0x76')]):![];}}break;case _0xf24c('0x79'):case'message':if(_0x2b463b[_0xf24c('0x6e')]===_0x4b955f){return _0x2b463b[_0xf24c('0x7a')]?operators[_0x547bbf[_0xf24c('0x77')]](_0x547bbf[_0xf24c('0x75')],_0x2b463b[_0xf24c('0x7a')]):![];}break;case _0xf24c('0x64'):return _0x2b463b['queue']?operators[_0x547bbf[_0xf24c('0x77')]](_0x547bbf[_0xf24c('0x75')],_0x2b463b[_0xf24c('0x64')]):![];case _0xf24c('0x7b'):return _0x2b463b[_0xf24c('0x7c')]?operators[_0x547bbf[_0xf24c('0x77')]](_0x547bbf[_0xf24c('0x75')],_0x2b463b[_0xf24c('0x7c')]):![];case _0xf24c('0x7d'):return _0x2b463b[_0xf24c('0x7d')]?operators[_0x547bbf[_0xf24c('0x77')]](_0x547bbf[_0xf24c('0x75')],_0x2b463b[_0xf24c('0x7d')]):![];case _0xf24c('0x65'):return _0x2b463b['routeId']?operators[_0x547bbf[_0xf24c('0x77')]](_0x547bbf[_0xf24c('0x75')],_0x2b463b[_0xf24c('0x65')]):![];case _0xf24c('0x7e'):if(_0x547bbf[_0xf24c('0x75')]===_0xf24c('0x7f'))_0x547bbf['value']=null;return typeof _0x2b463b[_0xf24c('0x80')]!=='undefined'?operators[_0x547bbf[_0xf24c('0x77')]](_0x547bbf['value'],_0x2b463b['substatus']):![];case _0xf24c('0x81'):if(_0x2b463b[_0xf24c('0x6e')]===_0x4b955f){return _0x547bbf[_0xf24c('0x75')]==='created'&&_0x547bbf[_0xf24c('0x77')]===_0xf24c('0x82')?!![]:![];}break;}return![];};};module['exports']=Trigger;