de5c03135dc728eadcc9db9b5b3989589766857c
[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 _0xc274=['voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','800','data5','data6','600','winapp','winApplication','render','winArguments','format','user:%s','trigger:%s:%s','jscripty','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','search','AllConditions','length','every','checkConditions','channel','AnyConditions','some','field','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','created','equals','lodash','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','trigger','redis','defaults','popup','url','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','zohoAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:closedinteraction','custom:substatus','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','emit','info','stringify','prototype','clone','motionChannel','undefined'];(function(_0x1b8f5a,_0x57c154){var _0x594189=function(_0x15b277){while(--_0x15b277){_0x1b8f5a['push'](_0x1b8f5a['shift']());}};_0x594189(++_0x57c154);}(_0xc274,0x151));var _0x4c27=function(_0x4c5329,_0x4883ef){_0x4c5329=_0x4c5329-0x0;var _0x2bfad4=_0xc274[_0x4c5329];return _0x2bfad4;};'use strict';var util=require('util');var _=require(_0x4c27('0x0'));var url=require('url');var Mustache=require('mustache');var Redis=require(_0x4c27('0x1'));var urlforward=require(_0x4c27('0x2'));var integration=require(_0x4c27('0x3'));var cmContact=require(_0x4c27('0x4'));var script=require(_0x4c27('0x5'));var config=require(_0x4c27('0x6'));var logger=require('../../../config/logger')(_0x4c27('0x7'));var ami=require('../ami');config[_0x4c27('0x8')]=_[_0x4c27('0x9')](config[_0x4c27('0x8')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4c27('0x8')]));var operators={'equals':function(_0x5eb920,_0x312ce4){return _0x5eb920==_0x312ce4;},'not_equals':function(_0x2a0c76,_0x2d0a27){return _0x2a0c76!=_0x2d0a27;}};var barAndWebActions=[_0x4c27('0xa'),_0x4c27('0xb'),'winapp'];function Trigger(_0x29b5ff){this[_0x4c27('0xc')]=_0x29b5ff[_0x4c27('0xc')];this[_0x4c27('0xd')]=_0x29b5ff['agents'];this['voiceQueues']=_0x29b5ff[_0x4c27('0xe')];this[_0x4c27('0xf')]=_0x29b5ff['templates'];this['voiceExtensions']=_0x29b5ff[_0x4c27('0x10')];this[_0x4c27('0x11')]=_0x29b5ff[_0x4c27('0x11')];this['freshdeskAccounts']=_0x29b5ff[_0x4c27('0x12')];this[_0x4c27('0x13')]=_0x29b5ff[_0x4c27('0x13')];this['sugarcrmAccounts']=_0x29b5ff[_0x4c27('0x14')];this['zohoAccounts']=_0x29b5ff['zohoAccounts'];this[_0x4c27('0x15')]=_0x29b5ff[_0x4c27('0x15')];this[_0x4c27('0x16')]=_0x29b5ff[_0x4c27('0x16')];this['servicenowAccounts']=_0x29b5ff[_0x4c27('0x17')];this[_0x4c27('0x18')]=_0x29b5ff['dynamics365Accounts'];this[_0x4c27('0x19')]=_0x29b5ff[_0x4c27('0x19')];this[_0x4c27('0x1a')]={'zendesk':this[_0x4c27('0x11')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x4c27('0x12')],'sugarcrm':this[_0x4c27('0x14')],'zoho':this[_0x4c27('0x1b')],'desk':this['deskAccounts'],'vtiger':this[_0x4c27('0x16')],'dynamics365':this[_0x4c27('0x18')],'freshsales':this[_0x4c27('0x19')],'servicenow':this[_0x4c27('0x17')]};ami['on'](_0x4c27('0x1c'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x1f'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x20'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x21'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x22'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x23'),this['syncCustomEvent'][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x24'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x25'),this['syncCustomEvent'][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x26'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x27'),this['syncCustomEvent']['bind'](this));ami['on'](_0x4c27('0x28'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x29'),this['syncCustomEvent']['bind'](this));ami['on'](_0x4c27('0x2a'),this[_0x4c27('0x2b')]['bind'](this));ami['on'](_0x4c27('0x2c'),this[_0x4c27('0x2b')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x2d'),this['syncAgentDial'][_0x4c27('0x1e')](this));ami['on']('custom:newinteraction',this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x2e'),this[_0x4c27('0x1d')]['bind'](this));ami['on'](_0x4c27('0x2f'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on']('custom:incomingmessage',this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x30'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x31'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x32'),this[_0x4c27('0x1d')][_0x4c27('0x1e')](this));ami['on'](_0x4c27('0x33'),this['syncCustomEvent'][_0x4c27('0x1e')](this));}Trigger['prototype'][_0x4c27('0x34')]=function(_0x28babc,_0x295fc1,_0x29c327){logger[_0x4c27('0x35')](_0x28babc,_0x295fc1,JSON[_0x4c27('0x36')](_0x29c327));io['to'](_0x28babc)['emit'](_0x295fc1,_0x29c327);};Trigger[_0x4c27('0x37')]['syncCustomEvent']=function(_0x213646){var _0x430596=_[_0x4c27('0x38')](_0x213646);if(typeof _0x430596[_0x4c27('0x39')]===_0x4c27('0x3a')){_0x430596['motionChannel']=_0x4c27('0x3b');}this[_0x4c27('0x3c')](_0x430596);};Trigger[_0x4c27('0x37')][_0x4c27('0x2b')]=function(_0x285d9d){if(this[_0x4c27('0xd')][_0x285d9d[_0x4c27('0x3d')]]){this['syncCustomEvent'](_0x285d9d);}};Trigger[_0x4c27('0x37')]['checkTriggers']=function(_0x4e179d){var _0x42e79e;for(var _0x38dc58 in this['triggers']){if(this['triggers'][_0x4c27('0x3e')](_0x38dc58)){if(this[_0x4c27('0xc')][_0x38dc58][_0x4c27('0x3f')]){_0x42e79e=this[_0x4c27('0x40')](this[_0x4c27('0xc')][_0x38dc58],_0x4e179d);if(_0x42e79e){_[_0x4c27('0x41')](_0x4e179d,_0x4e179d[_0x4c27('0x42')]);for(var _0x3c6268=0x0,_0x5616cd,_0x3d0323,_0x4c1498;_0x3c6268<this[_0x4c27('0xc')][_0x38dc58]['Actions']['length'];_0x3c6268+=0x1){_0x5616cd=this['triggers'][_0x38dc58][_0x4c27('0x43')][_0x3c6268];if(this[_0x4c27('0xd')][_0x4e179d['interface']]){switch(_0x5616cd[_0x4c27('0x44')][_0x4c27('0x45')]()){case _0x4c27('0x46'):break;case _0x4c27('0x47'):case _0x4c27('0x48'):var _0x4dab7d={};switch(barAndWebActions[_0x5616cd[_0x4c27('0x49')]]){case'popup':_0x4dab7d[_0x4c27('0x4a')]=_0x5616cd[_0x4c27('0x4b')];_0x4dab7d[_0x4c27('0x4c')]=this['templates'][_0x5616cd[_0x4c27('0x4b')]]?Mustache['render'](this[_0x4c27('0xf')][_0x5616cd[_0x4c27('0x4b')]][_0x4c27('0x4c')],_0x4e179d):_0x4c27('0x4d');break;case _0x4c27('0xb'):_0x4dab7d[_0x4c27('0x4e')]=this[_0x4c27('0x4f')](_0x5616cd[_0x4c27('0x4b')],_0x4e179d,_[_0x4c27('0x50')](_0x5616cd[_0x4c27('0x51')])?!![]:parseInt(_0x5616cd[_0x4c27('0x51')],0xa));if(_[_0x4c27('0x50')](_0x5616cd[_0x4c27('0x52')])){_0x4dab7d[_0x4c27('0x53')]='0';}else{_0x4dab7d['uriLocation']=_0x5616cd[_0x4c27('0x52')];_0x4dab7d['windowWidth']=_[_0x4c27('0x50')](_0x5616cd['data5'])?_0x4c27('0x54'):_0x5616cd[_0x4c27('0x55')];_0x4dab7d['windowHeight']=_[_0x4c27('0x50')](_0x5616cd[_0x4c27('0x56')])?_0x4c27('0x57'):_0x5616cd[_0x4c27('0x56')];}break;case _0x4c27('0x58'):_0x4dab7d[_0x4c27('0x59')]=_0x5616cd[_0x4c27('0x4b')]?Mustache[_0x4c27('0x5a')](_0x5616cd[_0x4c27('0x4b')],_0x4e179d):'';_0x4dab7d[_0x4c27('0x5b')]=_0x5616cd['data3']?Mustache[_0x4c27('0x5a')](_0x5616cd[_0x4c27('0x51')],_0x4e179d):'';break;}this[_0x4c27('0x34')](util[_0x4c27('0x5c')](_0x4c27('0x5d'),this[_0x4c27('0xd')][_0x4e179d[_0x4c27('0x3d')]]['name']),util['format'](_0x4c27('0x5e'),_0x5616cd[_0x4c27('0x44')][_0x4c27('0x45')](),barAndWebActions[_0x5616cd[_0x4c27('0x49')]]),_[_0x4c27('0x41')](_0x4dab7d,_0x4e179d));break;case _0x4c27('0x5f'):this[_0x4c27('0x34')](util[_0x4c27('0x5c')](_0x4c27('0x5d'),this[_0x4c27('0xd')][_0x4e179d[_0x4c27('0x3d')]][_0x4c27('0x60')]),util[_0x4c27('0x5c')](_0x4c27('0x61'),_0x5616cd['action'][_0x4c27('0x45')]()),_[_0x4c27('0x41')]({'ProjectId':parseInt(_0x5616cd[_0x4c27('0x49')],0xa)},_0x4e179d));break;default:this[_0x4c27('0x34')](util['format'](_0x4c27('0x5d'),this['agents'][_0x4e179d['interface']][_0x4c27('0x60')]),util[_0x4c27('0x5c')](_0x4c27('0x61'),_0x5616cd[_0x4c27('0x44')][_0x4c27('0x45')]()),_[_0x4c27('0x41')]({},_0x5616cd,_0x4e179d));}}switch(_0x5616cd[_0x4c27('0x44')][_0x4c27('0x45')]()){case _0x4c27('0x46'):cmContact[_0x4c27('0x62')](this[_0x4c27('0xd')][_0x4e179d[_0x4c27('0x3d')]],this[_0x4c27('0xc')][_0x38dc58],_0x5616cd,_0x4e179d);break;case _0x4c27('0x63'):integration[_0x4c27('0x62')](_0x5616cd,_0x4e179d,this['accounts'],this[_0x4c27('0xd')][_0x4e179d['interface']],this['voiceQueues'][_0x4e179d[_0x4c27('0x64')]],this[_0x4c27('0x10')][_0x4e179d[_0x4c27('0x65')]]);break;case _0x4c27('0x66'):urlforward[_0x4c27('0x62')](_0x5616cd,_0x4e179d);break;case _0x4c27('0x67'):script[_0x4c27('0x62')](_0x5616cd,_0x4e179d);break;}}}}}}};Trigger[_0x4c27('0x37')]['buildUri']=function(_0x5f1185,_0xe8af84,_0x16933c){var _0x4bb6fd=url[_0x4c27('0x68')](Mustache[_0x4c27('0x5a')](_0x5f1185,_0xe8af84),!![]);if(_0x16933c){_[_0x4c27('0x41')](_0x4bb6fd['query'],_0xe8af84);}delete _0x4bb6fd[_0x4c27('0x69')];var _0x3d8a83=url[_0x4c27('0x5c')](_0x4bb6fd);_0x3d8a83=_0x3d8a83['replace'](/\/\?/g,'?');return _0x3d8a83;};Trigger[_0x4c27('0x37')]['checkTrigger']=function(_0x59ec55,_0x4ced26){var _0x372d72=!![];var _0x5853e3=!![];var _0x16ba7=![];if(_0x59ec55['channel']===_0x4ced26['motionChannel']){_0x16ba7=!![];}if(_0x59ec55[_0x4c27('0x6a')][_0x4c27('0x6b')]){_0x372d72=_[_0x4c27('0x6c')](_0x59ec55['AllConditions'],this[_0x4c27('0x6d')](_0x4ced26,_0x59ec55[_0x4c27('0x6e')]));}if(_0x59ec55[_0x4c27('0x6f')]['length']){_0x5853e3=_[_0x4c27('0x70')](_0x59ec55[_0x4c27('0x6f')],this[_0x4c27('0x6d')](_0x4ced26,_0x59ec55[_0x4c27('0x6e')]));}return _0x16ba7&&_0x372d72&&_0x5853e3;};Trigger[_0x4c27('0x37')][_0x4c27('0x6d')]=function(_0x4314d8,_0x486bfa){return function(_0x191c5c){switch(_0x191c5c[_0x4c27('0x71')]){case'account':if(_0x4314d8['channel']===_0x486bfa){if(_0x486bfa===_0x4c27('0x72')){return _0x4314d8[_0x4c27('0x73')]?operators[_0x191c5c[_0x4c27('0x74')]](Number(_0x191c5c[_0x4c27('0x75')]),_0x4314d8[_0x4c27('0x73')]):![];}else{return _0x4314d8[_[_0x4c27('0x76')](_0x486bfa)+_0x4c27('0x77')]?operators[_0x191c5c[_0x4c27('0x74')]](Number(_0x191c5c[_0x4c27('0x75')]),_0x4314d8[_[_0x4c27('0x76')](_0x486bfa)+_0x4c27('0x77')]):![];}}break;case _0x4c27('0x78'):case _0x4c27('0x79'):if(_0x4314d8[_0x4c27('0x6e')]===_0x486bfa){return _0x4314d8['event']?operators[_0x191c5c['operator']](_0x191c5c['value'],_0x4314d8[_0x4c27('0x7a')]):![];}break;case'queue':return _0x4314d8[_0x4c27('0x64')]?operators[_0x191c5c['operator']](_0x191c5c[_0x4c27('0x75')],_0x4314d8['queue']):![];case _0x4c27('0x7b'):return _0x4314d8['membername']?operators[_0x191c5c[_0x4c27('0x74')]](_0x191c5c[_0x4c27('0x75')],_0x4314d8[_0x4c27('0x7c')]):![];case _0x4c27('0x7d'):return _0x4314d8[_0x4c27('0x7d')]?operators[_0x191c5c['operator']](_0x191c5c[_0x4c27('0x75')],_0x4314d8[_0x4c27('0x7d')]):![];case _0x4c27('0x65'):return _0x4314d8[_0x4c27('0x65')]?operators[_0x191c5c[_0x4c27('0x74')]](_0x191c5c[_0x4c27('0x75')],_0x4314d8[_0x4c27('0x65')]):![];case _0x4c27('0x7e'):if(_0x191c5c['value']===_0x4c27('0x7f'))_0x191c5c[_0x4c27('0x75')]=null;return typeof _0x4314d8[_0x4c27('0x80')]!==_0x4c27('0x3a')?operators[_0x191c5c[_0x4c27('0x74')]](_0x191c5c['value'],_0x4314d8[_0x4c27('0x80')]):![];case _0x4c27('0x81'):if(_0x4314d8[_0x4c27('0x6e')]===_0x486bfa){return _0x191c5c[_0x4c27('0x75')]===_0x4c27('0x82')&&_0x191c5c[_0x4c27('0x74')]===_0x4c27('0x83')?!![]:![];}break;}return![];};};module['exports']=Trigger;