Built motion from commit 9d1906d1.|2.5.40
[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 _0x50db=['mustache','./urlforward','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','vtigerAccounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentcomplete','custom:agentbusy','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','prototype','info','stringify','motionChannel','voice','checkTriggers','interface','status','checkTrigger','variables','length','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','html','data2','render','uri','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','winApplication','winArguments','emit','format','user:%s','action','merge','jscripty','name','trigger:%s','exec','queue','routeId','urlforward','script','parse','query','search','replace','channel','AllConditions','checkConditions','some','AnyConditions','field','account','chat','ChatWebsiteId','operator','upperFirst','AccountId','interaction','event','value','agent','membername','lastevent','null','substatus','exports','util','lodash','url'];(function(_0x43150a,_0x2dba88){var _0xfdc325=function(_0x22d015){while(--_0x22d015){_0x43150a['push'](_0x43150a['shift']());}};_0xfdc325(++_0x2dba88);}(_0x50db,0x1e9));var _0xb50d=function(_0x3ef22a,_0x1d137e){_0x3ef22a=_0x3ef22a-0x0;var _0x5c4045=_0x50db[_0x3ef22a];return _0x5c4045;};'use strict';var util=require(_0xb50d('0x0'));var _=require(_0xb50d('0x1'));var url=require(_0xb50d('0x2'));var Mustache=require(_0xb50d('0x3'));var Redis=require('ioredis');var urlforward=require(_0xb50d('0x4'));var integration=require('./integration');var cmContact=require('./cmContact');var script=require('./script');var config=require(_0xb50d('0x5'));var logger=require(_0xb50d('0x6'))(_0xb50d('0x7'));var ami=require(_0xb50d('0x8'));config['redis']=_['defaults'](config[_0xb50d('0x9')],{'host':_0xb50d('0xa'),'port':0x18eb});var io=require(_0xb50d('0xb'))(new Redis(config[_0xb50d('0x9')]));var operators={'equals':function(_0x56b025,_0x4c27f3){return _0x56b025==_0x4c27f3;},'not_equals':function(_0x3d9b90,_0x836abe){return _0x3d9b90!=_0x836abe;}};var barAndWebActions=[_0xb50d('0xc'),_0xb50d('0x2'),_0xb50d('0xd')];function Trigger(_0x1a9731){this[_0xb50d('0xe')]=_0x1a9731[_0xb50d('0xe')];this[_0xb50d('0xf')]=_0x1a9731['agents'];this[_0xb50d('0x10')]=_0x1a9731[_0xb50d('0x10')];this[_0xb50d('0x11')]=_0x1a9731[_0xb50d('0x11')];this[_0xb50d('0x12')]=_0x1a9731[_0xb50d('0x12')];this[_0xb50d('0x13')]=_0x1a9731['zendeskAccounts'];this[_0xb50d('0x14')]=_0x1a9731['freshdeskAccounts'];this[_0xb50d('0x15')]=_0x1a9731[_0xb50d('0x15')];this[_0xb50d('0x16')]=_0x1a9731[_0xb50d('0x16')];this[_0xb50d('0x17')]=_0x1a9731['zohoAccounts'];this[_0xb50d('0x18')]=_0x1a9731[_0xb50d('0x18')];this['vtigerAccounts']=_0x1a9731['vtigerAccounts'];this['servicenowAccounts']=_0x1a9731[_0xb50d('0x19')];this[_0xb50d('0x1a')]=_0x1a9731[_0xb50d('0x1a')];this['freshsalesAccounts']=_0x1a9731[_0xb50d('0x1b')];this[_0xb50d('0x1c')]={'zendesk':this[_0xb50d('0x13')],'salesforce':this[_0xb50d('0x15')],'freshdesk':this[_0xb50d('0x14')],'sugarcrm':this[_0xb50d('0x16')],'zoho':this[_0xb50d('0x17')],'desk':this[_0xb50d('0x18')],'vtiger':this[_0xb50d('0x1d')],'dynamics365':this[_0xb50d('0x1a')],'freshsales':this[_0xb50d('0x1b')],'servicenow':this['servicenowAccounts']};ami['on'](_0xb50d('0x1e'),this['syncCustomEvent'][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x20'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on']('custom:agentringnoanswer',this[_0xb50d('0x21')]['bind'](this));ami['on'](_0xb50d('0x22'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on']('custom:agentnosuchnumber',this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on']('custom:agentnoanswer',this['syncCustomEvent'][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x23'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x24'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x25'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x26'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x27'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x28'),this[_0xb50d('0x21')]['bind'](this));ami['on'](_0xb50d('0x29'),this[_0xb50d('0x2a')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x2b'),this[_0xb50d('0x2a')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x2c'),this[_0xb50d('0x2a')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x2d'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x2e'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x2f'),this[_0xb50d('0x21')]['bind'](this));ami['on'](_0xb50d('0x30'),this[_0xb50d('0x21')]['bind'](this));ami['on'](_0xb50d('0x31'),this[_0xb50d('0x21')][_0xb50d('0x1f')](this));ami['on'](_0xb50d('0x32'),this[_0xb50d('0x21')]['bind'](this));ami['on']('custom:rejectmessage',this[_0xb50d('0x21')][_0xb50d('0x1f')](this));}Trigger[_0xb50d('0x33')]['emit']=function(_0x5ca852,_0x38e0c7,_0xeb3f2a){logger[_0xb50d('0x34')](_0x5ca852,_0x38e0c7,JSON[_0xb50d('0x35')](_0xeb3f2a));io['to'](_0x5ca852)['emit'](_0x38e0c7,_0xeb3f2a);};Trigger[_0xb50d('0x33')][_0xb50d('0x21')]=function(_0x2cc5aa){var _0x55dda6=_['clone'](_0x2cc5aa);if(typeof _0x55dda6[_0xb50d('0x36')]==='undefined'){_0x55dda6[_0xb50d('0x36')]=_0xb50d('0x37');}this[_0xb50d('0x38')](_0x55dda6);};Trigger[_0xb50d('0x33')][_0xb50d('0x2a')]=function(_0x3cd7b1){if(this['agents'][_0x3cd7b1[_0xb50d('0x39')]]){this[_0xb50d('0x21')](_0x3cd7b1);}};Trigger[_0xb50d('0x33')][_0xb50d('0x38')]=function(_0x66355a){var _0x3ae52a;for(var _0x28a71a in this[_0xb50d('0xe')]){if(this[_0xb50d('0xe')]['hasOwnProperty'](_0x28a71a)){if(this['triggers'][_0x28a71a][_0xb50d('0x3a')]){_0x3ae52a=this[_0xb50d('0x3b')](this[_0xb50d('0xe')][_0x28a71a],_0x66355a);if(_0x3ae52a){_['merge'](_0x66355a,_0x66355a[_0xb50d('0x3c')]);for(var _0x4755cc=0x0,_0xe5207a,_0x146619,_0xf9175e;_0x4755cc<this[_0xb50d('0xe')][_0x28a71a]['Actions'][_0xb50d('0x3d')];_0x4755cc+=0x1){_0xe5207a=this[_0xb50d('0xe')][_0x28a71a]['Actions'][_0x4755cc];if(this[_0xb50d('0xf')][_0x66355a[_0xb50d('0x39')]]){switch(_0xe5207a['action'][_0xb50d('0x3e')]()){case _0xb50d('0x3f'):break;case _0xb50d('0x40'):case _0xb50d('0x41'):var _0x22445b={};switch(barAndWebActions[_0xe5207a[_0xb50d('0x42')]]){case _0xb50d('0xc'):_0x22445b[_0xb50d('0x43')]=_0xe5207a['data2'];_0x22445b[_0xb50d('0x44')]=this[_0xb50d('0x11')][_0xe5207a[_0xb50d('0x45')]]?Mustache[_0xb50d('0x46')](this[_0xb50d('0x11')][_0xe5207a[_0xb50d('0x45')]][_0xb50d('0x44')],_0x66355a):'template\x20not\x20found';break;case _0xb50d('0x2'):_0x22445b[_0xb50d('0x47')]=this[_0xb50d('0x48')](_0xe5207a[_0xb50d('0x45')],_0x66355a,_[_0xb50d('0x49')](_0xe5207a[_0xb50d('0x4a')])?!![]:parseInt(_0xe5207a[_0xb50d('0x4a')],0xa));if(_[_0xb50d('0x49')](_0xe5207a[_0xb50d('0x4b')])){_0x22445b[_0xb50d('0x4c')]='0';}else{_0x22445b[_0xb50d('0x4d')]=_0xe5207a['data4'];_0x22445b[_0xb50d('0x4e')]=_[_0xb50d('0x49')](_0xe5207a[_0xb50d('0x4f')])?_0xb50d('0x50'):_0xe5207a[_0xb50d('0x4f')];_0x22445b[_0xb50d('0x51')]=_[_0xb50d('0x49')](_0xe5207a[_0xb50d('0x52')])?'600':_0xe5207a[_0xb50d('0x52')];}break;case'winapp':_0x22445b[_0xb50d('0x53')]=_0xe5207a[_0xb50d('0x45')]?Mustache['render'](_0xe5207a[_0xb50d('0x45')],_0x66355a):'';_0x22445b[_0xb50d('0x54')]=_0xe5207a[_0xb50d('0x4a')]?Mustache[_0xb50d('0x46')](_0xe5207a['data3'],_0x66355a):'';break;}this[_0xb50d('0x55')](util[_0xb50d('0x56')](_0xb50d('0x57'),this[_0xb50d('0xf')][_0x66355a[_0xb50d('0x39')]]['name']),util['format']('trigger:%s:%s',_0xe5207a[_0xb50d('0x58')][_0xb50d('0x3e')](),barAndWebActions[_0xe5207a[_0xb50d('0x42')]]),_[_0xb50d('0x59')](_0x22445b,_0x66355a));break;case _0xb50d('0x5a'):this[_0xb50d('0x55')](util[_0xb50d('0x56')](_0xb50d('0x57'),this[_0xb50d('0xf')][_0x66355a[_0xb50d('0x39')]][_0xb50d('0x5b')]),util['format'](_0xb50d('0x5c'),_0xe5207a[_0xb50d('0x58')][_0xb50d('0x3e')]()),_['merge']({'ProjectId':parseInt(_0xe5207a[_0xb50d('0x42')],0xa)},_0x66355a));break;default:this[_0xb50d('0x55')](util[_0xb50d('0x56')]('user:%s',this[_0xb50d('0xf')][_0x66355a['interface']][_0xb50d('0x5b')]),util[_0xb50d('0x56')](_0xb50d('0x5c'),_0xe5207a[_0xb50d('0x58')]['toLowerCase']()),_[_0xb50d('0x59')]({},_0xe5207a,_0x66355a));}}switch(_0xe5207a['action'][_0xb50d('0x3e')]()){case _0xb50d('0x3f'):cmContact[_0xb50d('0x5d')](this['agents'][_0x66355a['interface']],this[_0xb50d('0xe')][_0x28a71a],_0xe5207a,_0x66355a);break;case'integration':integration['exec'](_0xe5207a,_0x66355a,this[_0xb50d('0x1c')],this[_0xb50d('0xf')][_0x66355a[_0xb50d('0x39')]],this['voiceQueues'][_0x66355a[_0xb50d('0x5e')]],this[_0xb50d('0x12')][_0x66355a[_0xb50d('0x5f')]]);break;case _0xb50d('0x60'):urlforward[_0xb50d('0x5d')](_0xe5207a,_0x66355a);break;case _0xb50d('0x61'):script['exec'](_0xe5207a,_0x66355a);break;}}}}}}};Trigger[_0xb50d('0x33')][_0xb50d('0x48')]=function(_0x4718d5,_0x461f21,_0x593989){var _0x31770f=url[_0xb50d('0x62')](Mustache[_0xb50d('0x46')](_0x4718d5,_0x461f21),!![]);if(_0x593989){_[_0xb50d('0x59')](_0x31770f[_0xb50d('0x63')],_0x461f21);}delete _0x31770f[_0xb50d('0x64')];var _0x226371=url[_0xb50d('0x56')](_0x31770f);_0x226371=_0x226371[_0xb50d('0x65')](/\/\?/g,'?');return _0x226371;};Trigger['prototype'][_0xb50d('0x3b')]=function(_0x59e7df,_0xcdd927){var _0x83939b=!![];var _0xd8bbeb=!![];var _0x256ebc=![];if(_0x59e7df[_0xb50d('0x66')]===_0xcdd927['motionChannel']){_0x256ebc=!![];}if(_0x59e7df[_0xb50d('0x67')][_0xb50d('0x3d')]){_0x83939b=_['every'](_0x59e7df[_0xb50d('0x67')],this[_0xb50d('0x68')](_0xcdd927,_0x59e7df[_0xb50d('0x66')]));}if(_0x59e7df['AnyConditions'][_0xb50d('0x3d')]){_0xd8bbeb=_[_0xb50d('0x69')](_0x59e7df[_0xb50d('0x6a')],this[_0xb50d('0x68')](_0xcdd927,_0x59e7df[_0xb50d('0x66')]));}return _0x256ebc&&_0x83939b&&_0xd8bbeb;};Trigger['prototype']['checkConditions']=function(_0x10ea66,_0x38392d){return function(_0x3d9199){switch(_0x3d9199[_0xb50d('0x6b')]){case _0xb50d('0x6c'):if(_0x10ea66['channel']===_0x38392d){if(_0x38392d===_0xb50d('0x6d')){return _0x10ea66[_0xb50d('0x6e')]?operators[_0x3d9199[_0xb50d('0x6f')]](Number(_0x3d9199['value']),_0x10ea66[_0xb50d('0x6e')]):![];}else{return _0x10ea66[_[_0xb50d('0x70')](_0x38392d)+_0xb50d('0x71')]?operators[_0x3d9199[_0xb50d('0x6f')]](Number(_0x3d9199['value']),_0x10ea66[_[_0xb50d('0x70')](_0x38392d)+'AccountId']):![];}}break;case _0xb50d('0x72'):case'message':if(_0x10ea66[_0xb50d('0x66')]===_0x38392d){return _0x10ea66[_0xb50d('0x73')]?operators[_0x3d9199[_0xb50d('0x6f')]](_0x3d9199['value'],_0x10ea66[_0xb50d('0x73')]):![];}break;case'queue':return _0x10ea66[_0xb50d('0x5e')]?operators[_0x3d9199[_0xb50d('0x6f')]](_0x3d9199[_0xb50d('0x74')],_0x10ea66[_0xb50d('0x5e')]):![];case _0xb50d('0x75'):return _0x10ea66[_0xb50d('0x76')]?operators[_0x3d9199[_0xb50d('0x6f')]](_0x3d9199[_0xb50d('0x74')],_0x10ea66['membername']):![];case _0xb50d('0x77'):return _0x10ea66[_0xb50d('0x77')]?operators[_0x3d9199[_0xb50d('0x6f')]](_0x3d9199[_0xb50d('0x74')],_0x10ea66[_0xb50d('0x77')]):![];case'routeId':return _0x10ea66['routeId']?operators[_0x3d9199[_0xb50d('0x6f')]](_0x3d9199[_0xb50d('0x74')],_0x10ea66[_0xb50d('0x5f')]):![];case'mailSubstatus':if(_0x3d9199['value']===_0xb50d('0x78'))_0x3d9199[_0xb50d('0x74')]=null;return typeof _0x10ea66[_0xb50d('0x79')]!=='undefined'?operators[_0x3d9199['operator']](_0x3d9199['value'],_0x10ea66['substatus']):![];}return![];};};module[_0xb50d('0x7a')]=Trigger;