Built motion from commit 3c2ce842.|2.6.31
[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 _0x788e=['buildUri','isNil','data3','location','uriLocation','data4','windowWidth','800','data5','data6','600','winapp','winApplication','render','winArguments','format','user:%s','name','toLowerCase','jscripty','trigger:%s','exec','integration','queue','script','parse','search','replace','every','checkConditions','channel','some','AnyConditions','debug','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','offlineMessage','created','equals','lodash','url','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/logger','redis','localhost','socket.io-emitter','popup','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','deskAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','clone','motionChannel','undefined','voice','inspect','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','action','contactmanager','motionbar','browser','data1','TemplateId','data2','html'];(function(_0xf80b3,_0x25d5f3){var _0x10c489=function(_0x3c5aee){while(--_0x3c5aee){_0xf80b3['push'](_0xf80b3['shift']());}};_0x10c489(++_0x25d5f3);}(_0x788e,0x12e));var _0xe788=function(_0x49000a,_0x1389be){_0x49000a=_0x49000a-0x0;var _0x2dc5bb=_0x788e[_0x49000a];return _0x2dc5bb;};'use strict';var util=require('util');var _=require(_0xe788('0x0'));var url=require(_0xe788('0x1'));var Mustache=require(_0xe788('0x2'));var Redis=require(_0xe788('0x3'));var urlforward=require(_0xe788('0x4'));var integration=require('./integration');var cmContact=require(_0xe788('0x5'));var script=require(_0xe788('0x6'));var config=require('../../../config/environment');var logger=require(_0xe788('0x7'))('trigger');var ami=require('../ami');config[_0xe788('0x8')]=_['defaults'](config['redis'],{'host':_0xe788('0x9'),'port':0x18eb});var io=require(_0xe788('0xa'))(new Redis(config[_0xe788('0x8')]));var operators={'equals':function(_0x47ec65,_0x51811a){return _0x47ec65==_0x51811a;},'not_equals':function(_0xf7ab45,_0x519ee4){return _0xf7ab45!=_0x519ee4;}};var barAndWebActions=[_0xe788('0xb'),_0xe788('0x1'),'winapp'];function Trigger(_0x2b00ed){this['triggers']=_0x2b00ed[_0xe788('0xc')];this[_0xe788('0xd')]=_0x2b00ed['agents'];this[_0xe788('0xe')]=_0x2b00ed[_0xe788('0xe')];this[_0xe788('0xf')]=_0x2b00ed[_0xe788('0xf')];this[_0xe788('0x10')]=_0x2b00ed[_0xe788('0x10')];this[_0xe788('0x11')]=_0x2b00ed[_0xe788('0x11')];this[_0xe788('0x12')]=_0x2b00ed['freshdeskAccounts'];this[_0xe788('0x13')]=_0x2b00ed['salesforceAccounts'];this[_0xe788('0x14')]=_0x2b00ed[_0xe788('0x14')];this[_0xe788('0x15')]=_0x2b00ed[_0xe788('0x15')];this['deskAccounts']=_0x2b00ed['deskAccounts'];this['vtigerAccounts']=_0x2b00ed[_0xe788('0x16')];this[_0xe788('0x17')]=_0x2b00ed['servicenowAccounts'];this[_0xe788('0x18')]=_0x2b00ed[_0xe788('0x18')];this['freshsalesAccounts']=_0x2b00ed[_0xe788('0x19')];this[_0xe788('0x1a')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xe788('0x13')],'freshdesk':this[_0xe788('0x12')],'sugarcrm':this[_0xe788('0x14')],'zoho':this['zohoAccounts'],'desk':this[_0xe788('0x1b')],'vtiger':this[_0xe788('0x16')],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xe788('0x17')]};ami['on'](_0xe788('0x1c'),this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on']('custom:agentconnect',this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on']('custom:agentringnoanswer',this[_0xe788('0x1d')]['bind'](this));ami['on']('custom:agentcomplete',this['syncCustomEvent'][_0xe788('0x1e')](this));ami['on'](_0xe788('0x1f'),this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x20'),this[_0xe788('0x1d')]['bind'](this));ami['on']('custom:agentbusy',this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x21'),this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on']('custom:agentreject',this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x22'),this['syncCustomEvent']['bind'](this));ami['on'](_0xe788('0x23'),this['syncCustomEvent'][_0xe788('0x1e')](this));ami['on'](_0xe788('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0xe788('0x25'),this[_0xe788('0x26')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x27'),this['syncAgentDial']['bind'](this));ami['on']('custom:dialend',this[_0xe788('0x26')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x28'),this[_0xe788('0x1d')]['bind'](this));ami['on']('custom:closedinteraction',this['syncCustomEvent'][_0xe788('0x1e')](this));ami['on']('custom:substatus',this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on']('custom:incomingmessage',this['syncCustomEvent'][_0xe788('0x1e')](this));ami['on'](_0xe788('0x29'),this['syncCustomEvent'][_0xe788('0x1e')](this));ami['on'](_0xe788('0x2a'),this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x2b'),this[_0xe788('0x1d')][_0xe788('0x1e')](this));ami['on'](_0xe788('0x2c'),this[_0xe788('0x1d')]['bind'](this));}Trigger[_0xe788('0x2d')][_0xe788('0x2e')]=function(_0x4a58f4,_0x4d9e9c,_0x429198){logger[_0xe788('0x2f')](_0x4a58f4,_0x4d9e9c,JSON['stringify'](_0x429198));io['to'](_0x4a58f4)['emit'](_0x4d9e9c,_0x429198);};Trigger[_0xe788('0x2d')][_0xe788('0x1d')]=function(_0x3637a6){var _0x2f0144=_[_0xe788('0x30')](_0x3637a6);if(typeof _0x2f0144[_0xe788('0x31')]===_0xe788('0x32')){_0x2f0144[_0xe788('0x31')]=_0xe788('0x33');}logger['debug'](_0xe788('0x1d'),util[_0xe788('0x34')](_0x2f0144,{'showHidden':!![],'depth':null}));this[_0xe788('0x35')](_0x2f0144);};Trigger[_0xe788('0x2d')][_0xe788('0x26')]=function(_0x4ec584){if(this[_0xe788('0xd')][_0x4ec584[_0xe788('0x36')]]){this[_0xe788('0x1d')](_0x4ec584);}};Trigger['prototype']['checkTriggers']=function(_0x8fb179){var _0x3df817;for(var _0x27d647 in this[_0xe788('0xc')]){if(this[_0xe788('0xc')][_0xe788('0x37')](_0x27d647)){if(this[_0xe788('0xc')][_0x27d647][_0xe788('0x38')]){_0x3df817=this[_0xe788('0x39')](this['triggers'][_0x27d647],_0x8fb179);if(_0x3df817){_[_0xe788('0x3a')](_0x8fb179,_0x8fb179[_0xe788('0x3b')]);for(var _0x89c52e=0x0,_0x3bbd35,_0x2574e3,_0x2c38f4;_0x89c52e<this[_0xe788('0xc')][_0x27d647][_0xe788('0x3c')][_0xe788('0x3d')];_0x89c52e+=0x1){_0x3bbd35=this[_0xe788('0xc')][_0x27d647][_0xe788('0x3c')][_0x89c52e];if(this[_0xe788('0xd')][_0x8fb179['interface']]){switch(_0x3bbd35[_0xe788('0x3e')]['toLowerCase']()){case _0xe788('0x3f'):break;case _0xe788('0x40'):case _0xe788('0x41'):var _0xb0261={};switch(barAndWebActions[_0x3bbd35[_0xe788('0x42')]]){case _0xe788('0xb'):_0xb0261[_0xe788('0x43')]=_0x3bbd35[_0xe788('0x44')];_0xb0261[_0xe788('0x45')]=this[_0xe788('0xf')][_0x3bbd35[_0xe788('0x44')]]?Mustache['render'](this[_0xe788('0xf')][_0x3bbd35[_0xe788('0x44')]]['html'],_0x8fb179):'template\x20not\x20found';break;case _0xe788('0x1'):_0xb0261['uri']=this[_0xe788('0x46')](_0x3bbd35[_0xe788('0x44')],_0x8fb179,_[_0xe788('0x47')](_0x3bbd35[_0xe788('0x48')])?!![]:parseInt(_0x3bbd35[_0xe788('0x48')],0xa));if(_[_0xe788('0x47')](_0x3bbd35['data4'])){_0xb0261[_0xe788('0x49')]='0';}else{_0xb0261[_0xe788('0x4a')]=_0x3bbd35[_0xe788('0x4b')];_0xb0261[_0xe788('0x4c')]=_[_0xe788('0x47')](_0x3bbd35['data5'])?_0xe788('0x4d'):_0x3bbd35[_0xe788('0x4e')];_0xb0261['windowHeight']=_['isNil'](_0x3bbd35[_0xe788('0x4f')])?_0xe788('0x50'):_0x3bbd35[_0xe788('0x4f')];}break;case _0xe788('0x51'):_0xb0261[_0xe788('0x52')]=_0x3bbd35[_0xe788('0x44')]?Mustache[_0xe788('0x53')](_0x3bbd35['data2'],_0x8fb179):'';_0xb0261[_0xe788('0x54')]=_0x3bbd35[_0xe788('0x48')]?Mustache[_0xe788('0x53')](_0x3bbd35[_0xe788('0x48')],_0x8fb179):'';break;}this[_0xe788('0x2e')](util[_0xe788('0x55')](_0xe788('0x56'),this['agents'][_0x8fb179['interface']][_0xe788('0x57')]),util[_0xe788('0x55')]('trigger:%s:%s',_0x3bbd35[_0xe788('0x3e')][_0xe788('0x58')](),barAndWebActions[_0x3bbd35[_0xe788('0x42')]]),_[_0xe788('0x3a')](_0xb0261,_0x8fb179));break;case _0xe788('0x59'):this[_0xe788('0x2e')](util[_0xe788('0x55')]('user:%s',this['agents'][_0x8fb179['interface']]['name']),util[_0xe788('0x55')](_0xe788('0x5a'),_0x3bbd35[_0xe788('0x3e')]['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x3bbd35['data1'],0xa)},_0x8fb179));break;default:this[_0xe788('0x2e')](util[_0xe788('0x55')](_0xe788('0x56'),this[_0xe788('0xd')][_0x8fb179[_0xe788('0x36')]][_0xe788('0x57')]),util[_0xe788('0x55')](_0xe788('0x5a'),_0x3bbd35['action'][_0xe788('0x58')]()),_[_0xe788('0x3a')]({},_0x3bbd35,_0x8fb179));}}switch(_0x3bbd35[_0xe788('0x3e')][_0xe788('0x58')]()){case _0xe788('0x3f'):cmContact[_0xe788('0x5b')](this['agents'][_0x8fb179[_0xe788('0x36')]],this[_0xe788('0xc')][_0x27d647],_0x3bbd35,_0x8fb179);break;case _0xe788('0x5c'):integration[_0xe788('0x5b')](_0x3bbd35,_0x8fb179,this[_0xe788('0x1a')],this[_0xe788('0xd')][_0x8fb179[_0xe788('0x36')]],this[_0xe788('0xe')][_0x8fb179[_0xe788('0x5d')]],this[_0xe788('0x10')][_0x8fb179['routeId']]);break;case'urlforward':urlforward['exec'](_0x3bbd35,_0x8fb179);break;case _0xe788('0x5e'):script[_0xe788('0x5b')](_0x3bbd35,_0x8fb179);break;}}}}}}};Trigger[_0xe788('0x2d')][_0xe788('0x46')]=function(_0x5c1bbc,_0x556520,_0x19888a){var _0xd46bc2=url[_0xe788('0x5f')](Mustache[_0xe788('0x53')](_0x5c1bbc,_0x556520),!![]);if(_0x19888a){_[_0xe788('0x3a')](_0xd46bc2['query'],_0x556520);}delete _0xd46bc2[_0xe788('0x60')];var _0xf1df85=url[_0xe788('0x55')](_0xd46bc2);_0xf1df85=_0xf1df85[_0xe788('0x61')](/\/\?/g,'?');return _0xf1df85;};Trigger['prototype'][_0xe788('0x39')]=function(_0x3e458f,_0x17b115){var _0x52ff71=!![];var _0x22a772=!![];var _0x5b0467=![];if(_0x3e458f['channel']===_0x17b115[_0xe788('0x31')]){_0x5b0467=!![];}if(_0x3e458f['AllConditions'][_0xe788('0x3d')]){_0x52ff71=_[_0xe788('0x62')](_0x3e458f['AllConditions'],this[_0xe788('0x63')](_0x17b115,_0x3e458f[_0xe788('0x64')]));}if(_0x3e458f['AnyConditions']['length']){_0x22a772=_[_0xe788('0x65')](_0x3e458f[_0xe788('0x66')],this[_0xe788('0x63')](_0x17b115,_0x3e458f[_0xe788('0x64')]));}var _0x2baf0a=_0x5b0467&&_0x52ff71&&_0x22a772;logger[_0xe788('0x67')]('checkTrigger:\x20trigger',util[_0xe788('0x34')](_0x3e458f,{'showHidden':!![],'depth':null}),'evt',util[_0xe788('0x34')](_0x17b115,{'showHidden':!![],'depth':null}),_0x5b0467,_0x52ff71,_0x22a772);return _0x2baf0a;};Trigger[_0xe788('0x2d')][_0xe788('0x63')]=function(_0x2df68c,_0x4ebf33){return function(_0x100991){switch(_0x100991[_0xe788('0x68')]){case _0xe788('0x69'):if(_0x2df68c[_0xe788('0x64')]===_0x4ebf33){if(_0x4ebf33===_0xe788('0x6a')){return _0x2df68c[_0xe788('0x6b')]?operators[_0x100991[_0xe788('0x6c')]](Number(_0x100991[_0xe788('0x6d')]),_0x2df68c[_0xe788('0x6b')]):![];}else{return _0x2df68c[_[_0xe788('0x6e')](_0x4ebf33)+_0xe788('0x6f')]?operators[_0x100991[_0xe788('0x6c')]](Number(_0x100991[_0xe788('0x6d')]),_0x2df68c[_[_0xe788('0x6e')](_0x4ebf33)+'AccountId']):![];}}break;case'interaction':case _0xe788('0x70'):if(_0x2df68c[_0xe788('0x64')]===_0x4ebf33){return _0x2df68c[_0xe788('0x71')]?operators[_0x100991[_0xe788('0x6c')]](_0x100991[_0xe788('0x6d')],_0x2df68c[_0xe788('0x71')]):![];}break;case _0xe788('0x5d'):return _0x2df68c[_0xe788('0x5d')]?operators[_0x100991[_0xe788('0x6c')]](_0x100991['value'],_0x2df68c['queue']):![];case _0xe788('0x72'):return _0x2df68c[_0xe788('0x73')]?operators[_0x100991[_0xe788('0x6c')]](_0x100991[_0xe788('0x6d')],_0x2df68c[_0xe788('0x73')]):![];case'lastevent':return _0x2df68c['lastevent']?operators[_0x100991['operator']](_0x100991[_0xe788('0x6d')],_0x2df68c[_0xe788('0x74')]):![];case _0xe788('0x75'):return _0x2df68c[_0xe788('0x75')]?operators[_0x100991['operator']](_0x100991[_0xe788('0x6d')],_0x2df68c[_0xe788('0x75')]):![];case _0xe788('0x76'):if(_0x100991[_0xe788('0x6d')]===_0xe788('0x77'))_0x100991[_0xe788('0x6d')]=null;return typeof _0x2df68c[_0xe788('0x78')]!=='undefined'?operators[_0x100991[_0xe788('0x6c')]](_0x100991['value'],_0x2df68c['substatus']):![];case _0xe788('0x79'):if(_0x2df68c[_0xe788('0x64')]===_0x4ebf33){return _0x100991[_0xe788('0x6d')]===_0xe788('0x7a')&&_0x100991[_0xe788('0x6c')]===_0xe788('0x7b')?!![]:![];}break;}return![];};};module['exports']=Trigger;