Built motion from commit e02f907f.|2.6.14
[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 _0xdd83=['voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','syncCustomEvent','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','emit','info','stringify','prototype','clone','motionChannel','undefined','inspect','checkTriggers','interface','status','merge','variables','length','Actions','toLowerCase','motionbar','browser','data2','html','render','buildUri','isNil','data3','data4','location','windowWidth','data5','windowHeight','data6','600','winApplication','format','action','jscripty','user:%s','name','trigger:%s','data1','exec','integration','accounts','queue','routeId','urlforward','parse','search','channel','AllConditions','every','checkConditions','debug','checkTrigger:\x20trigger','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','event','membername','mailSubstatus','substatus','offlineMessage','created','equals','exports','util','lodash','url','mustache','ioredis','./urlforward','./integration','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','popup','winapp','triggers','agents'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xdd83,0xe1));var _0x3dd8=function(_0x1589dd,_0x2b9d22){_0x1589dd=_0x1589dd-0x0;var _0x1bddd1=_0xdd83[_0x1589dd];return _0x1bddd1;};'use strict';var util=require(_0x3dd8('0x0'));var _=require(_0x3dd8('0x1'));var url=require(_0x3dd8('0x2'));var Mustache=require(_0x3dd8('0x3'));var Redis=require(_0x3dd8('0x4'));var urlforward=require(_0x3dd8('0x5'));var integration=require(_0x3dd8('0x6'));var cmContact=require('./cmContact');var script=require(_0x3dd8('0x7'));var config=require(_0x3dd8('0x8'));var logger=require(_0x3dd8('0x9'))(_0x3dd8('0xa'));var ami=require(_0x3dd8('0xb'));config[_0x3dd8('0xc')]=_[_0x3dd8('0xd')](config[_0x3dd8('0xc')],{'host':_0x3dd8('0xe'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x3dd8('0xc')]));var operators={'equals':function(_0x3e6bbb,_0x59024b){return _0x3e6bbb==_0x59024b;},'not_equals':function(_0x2d6b44,_0x2326fd){return _0x2d6b44!=_0x2326fd;}};var barAndWebActions=[_0x3dd8('0xf'),_0x3dd8('0x2'),_0x3dd8('0x10')];function Trigger(_0x3b8444){this[_0x3dd8('0x11')]=_0x3b8444['triggers'];this[_0x3dd8('0x12')]=_0x3b8444['agents'];this[_0x3dd8('0x13')]=_0x3b8444[_0x3dd8('0x13')];this[_0x3dd8('0x14')]=_0x3b8444[_0x3dd8('0x14')];this[_0x3dd8('0x15')]=_0x3b8444['voiceExtensions'];this[_0x3dd8('0x16')]=_0x3b8444[_0x3dd8('0x16')];this[_0x3dd8('0x17')]=_0x3b8444['freshdeskAccounts'];this[_0x3dd8('0x18')]=_0x3b8444[_0x3dd8('0x18')];this[_0x3dd8('0x19')]=_0x3b8444['sugarcrmAccounts'];this[_0x3dd8('0x1a')]=_0x3b8444[_0x3dd8('0x1a')];this[_0x3dd8('0x1b')]=_0x3b8444[_0x3dd8('0x1b')];this[_0x3dd8('0x1c')]=_0x3b8444[_0x3dd8('0x1c')];this['servicenowAccounts']=_0x3b8444[_0x3dd8('0x1d')];this[_0x3dd8('0x1e')]=_0x3b8444[_0x3dd8('0x1e')];this['freshsalesAccounts']=_0x3b8444[_0x3dd8('0x1f')];this['accounts']={'zendesk':this[_0x3dd8('0x16')],'salesforce':this[_0x3dd8('0x18')],'freshdesk':this[_0x3dd8('0x17')],'sugarcrm':this[_0x3dd8('0x19')],'zoho':this[_0x3dd8('0x1a')],'desk':this[_0x3dd8('0x1b')],'vtiger':this[_0x3dd8('0x1c')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x3dd8('0x1f')],'servicenow':this[_0x3dd8('0x1d')]};ami['on'](_0x3dd8('0x20'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3dd8('0x21'),this['syncCustomEvent'][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x23'),this['syncCustomEvent'][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x24'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x26'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x27'),this['syncCustomEvent'][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x28'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x29'),this['syncCustomEvent'][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x2a'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x2b'),this['syncCustomEvent'][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x2c'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x2d'),this[_0x3dd8('0x25')]['bind'](this));ami['on']('custom:dialbegin',this[_0x3dd8('0x2e')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x2f'),this[_0x3dd8('0x2e')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x30'),this[_0x3dd8('0x2e')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x31'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x32'),this['syncCustomEvent']['bind'](this));ami['on']('custom:substatus',this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x33'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent'][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x34'),this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));ami['on'](_0x3dd8('0x35'),this['syncCustomEvent']['bind'](this));ami['on']('custom:offlineMessage',this[_0x3dd8('0x25')][_0x3dd8('0x22')](this));}Trigger['prototype'][_0x3dd8('0x36')]=function(_0x327ee9,_0x489434,_0x2836a0){logger[_0x3dd8('0x37')](_0x327ee9,_0x489434,JSON[_0x3dd8('0x38')](_0x2836a0));io['to'](_0x327ee9)[_0x3dd8('0x36')](_0x489434,_0x2836a0);};Trigger[_0x3dd8('0x39')][_0x3dd8('0x25')]=function(_0x15e030){var _0x379535=_[_0x3dd8('0x3a')](_0x15e030);if(typeof _0x379535[_0x3dd8('0x3b')]===_0x3dd8('0x3c')){_0x379535[_0x3dd8('0x3b')]='voice';}logger['debug'](_0x3dd8('0x25'),util[_0x3dd8('0x3d')](_0x379535,{'showHidden':!![],'depth':null}));this[_0x3dd8('0x3e')](_0x379535);};Trigger[_0x3dd8('0x39')][_0x3dd8('0x2e')]=function(_0x1c0705){if(this['agents'][_0x1c0705[_0x3dd8('0x3f')]]){this['syncCustomEvent'](_0x1c0705);}};Trigger[_0x3dd8('0x39')][_0x3dd8('0x3e')]=function(_0x1fe483){var _0x4e8e79;for(var _0x52a280 in this[_0x3dd8('0x11')]){if(this[_0x3dd8('0x11')]['hasOwnProperty'](_0x52a280)){if(this[_0x3dd8('0x11')][_0x52a280][_0x3dd8('0x40')]){_0x4e8e79=this['checkTrigger'](this[_0x3dd8('0x11')][_0x52a280],_0x1fe483);if(_0x4e8e79){_[_0x3dd8('0x41')](_0x1fe483,_0x1fe483[_0x3dd8('0x42')]);for(var _0xc22500=0x0,_0x2c0f57,_0x5ab249,_0x5d05f8;_0xc22500<this[_0x3dd8('0x11')][_0x52a280]['Actions'][_0x3dd8('0x43')];_0xc22500+=0x1){_0x2c0f57=this[_0x3dd8('0x11')][_0x52a280][_0x3dd8('0x44')][_0xc22500];if(this['agents'][_0x1fe483[_0x3dd8('0x3f')]]){switch(_0x2c0f57['action'][_0x3dd8('0x45')]()){case'contactmanager':break;case _0x3dd8('0x46'):case _0x3dd8('0x47'):var _0x5e4bad={};switch(barAndWebActions[_0x2c0f57['data1']]){case _0x3dd8('0xf'):_0x5e4bad['TemplateId']=_0x2c0f57[_0x3dd8('0x48')];_0x5e4bad[_0x3dd8('0x49')]=this[_0x3dd8('0x14')][_0x2c0f57[_0x3dd8('0x48')]]?Mustache[_0x3dd8('0x4a')](this[_0x3dd8('0x14')][_0x2c0f57['data2']]['html'],_0x1fe483):'template\x20not\x20found';break;case _0x3dd8('0x2'):_0x5e4bad['uri']=this[_0x3dd8('0x4b')](_0x2c0f57[_0x3dd8('0x48')],_0x1fe483,_[_0x3dd8('0x4c')](_0x2c0f57[_0x3dd8('0x4d')])?!![]:parseInt(_0x2c0f57[_0x3dd8('0x4d')],0xa));if(_[_0x3dd8('0x4c')](_0x2c0f57[_0x3dd8('0x4e')])){_0x5e4bad[_0x3dd8('0x4f')]='0';}else{_0x5e4bad['uriLocation']=_0x2c0f57[_0x3dd8('0x4e')];_0x5e4bad[_0x3dd8('0x50')]=_[_0x3dd8('0x4c')](_0x2c0f57[_0x3dd8('0x51')])?'800':_0x2c0f57[_0x3dd8('0x51')];_0x5e4bad[_0x3dd8('0x52')]=_[_0x3dd8('0x4c')](_0x2c0f57[_0x3dd8('0x53')])?_0x3dd8('0x54'):_0x2c0f57['data6'];}break;case _0x3dd8('0x10'):_0x5e4bad[_0x3dd8('0x55')]=_0x2c0f57[_0x3dd8('0x48')]?Mustache[_0x3dd8('0x4a')](_0x2c0f57[_0x3dd8('0x48')],_0x1fe483):'';_0x5e4bad['winArguments']=_0x2c0f57[_0x3dd8('0x4d')]?Mustache[_0x3dd8('0x4a')](_0x2c0f57[_0x3dd8('0x4d')],_0x1fe483):'';break;}this[_0x3dd8('0x36')](util[_0x3dd8('0x56')]('user:%s',this[_0x3dd8('0x12')][_0x1fe483[_0x3dd8('0x3f')]]['name']),util[_0x3dd8('0x56')]('trigger:%s:%s',_0x2c0f57[_0x3dd8('0x57')][_0x3dd8('0x45')](),barAndWebActions[_0x2c0f57['data1']]),_[_0x3dd8('0x41')](_0x5e4bad,_0x1fe483));break;case _0x3dd8('0x58'):this[_0x3dd8('0x36')](util[_0x3dd8('0x56')](_0x3dd8('0x59'),this[_0x3dd8('0x12')][_0x1fe483[_0x3dd8('0x3f')]][_0x3dd8('0x5a')]),util[_0x3dd8('0x56')](_0x3dd8('0x5b'),_0x2c0f57['action'][_0x3dd8('0x45')]()),_[_0x3dd8('0x41')]({'ProjectId':parseInt(_0x2c0f57[_0x3dd8('0x5c')],0xa)},_0x1fe483));break;default:this[_0x3dd8('0x36')](util['format'](_0x3dd8('0x59'),this['agents'][_0x1fe483[_0x3dd8('0x3f')]]['name']),util['format'](_0x3dd8('0x5b'),_0x2c0f57[_0x3dd8('0x57')][_0x3dd8('0x45')]()),_[_0x3dd8('0x41')]({},_0x2c0f57,_0x1fe483));}}switch(_0x2c0f57[_0x3dd8('0x57')]['toLowerCase']()){case'contactmanager':cmContact[_0x3dd8('0x5d')](this[_0x3dd8('0x12')][_0x1fe483[_0x3dd8('0x3f')]],this[_0x3dd8('0x11')][_0x52a280],_0x2c0f57,_0x1fe483);break;case _0x3dd8('0x5e'):integration[_0x3dd8('0x5d')](_0x2c0f57,_0x1fe483,this[_0x3dd8('0x5f')],this[_0x3dd8('0x12')][_0x1fe483[_0x3dd8('0x3f')]],this[_0x3dd8('0x13')][_0x1fe483[_0x3dd8('0x60')]],this['voiceExtensions'][_0x1fe483[_0x3dd8('0x61')]]);break;case _0x3dd8('0x62'):urlforward[_0x3dd8('0x5d')](_0x2c0f57,_0x1fe483);break;case'script':script[_0x3dd8('0x5d')](_0x2c0f57,_0x1fe483);break;}}}}}}};Trigger[_0x3dd8('0x39')]['buildUri']=function(_0x13a47a,_0x59ed29,_0x2b6076){var _0x5dddd3=url[_0x3dd8('0x63')](Mustache[_0x3dd8('0x4a')](_0x13a47a,_0x59ed29),!![]);if(_0x2b6076){_[_0x3dd8('0x41')](_0x5dddd3['query'],_0x59ed29);}delete _0x5dddd3[_0x3dd8('0x64')];var _0x55331a=url[_0x3dd8('0x56')](_0x5dddd3);_0x55331a=_0x55331a['replace'](/\/\?/g,'?');return _0x55331a;};Trigger[_0x3dd8('0x39')]['checkTrigger']=function(_0x53d79a,_0xb5f3bc){var _0x3c1214=!![];var _0x3f93ac=!![];var _0xf7f52d=![];if(_0x53d79a[_0x3dd8('0x65')]===_0xb5f3bc['motionChannel']){_0xf7f52d=!![];}if(_0x53d79a[_0x3dd8('0x66')][_0x3dd8('0x43')]){_0x3c1214=_[_0x3dd8('0x67')](_0x53d79a['AllConditions'],this['checkConditions'](_0xb5f3bc,_0x53d79a[_0x3dd8('0x65')]));}if(_0x53d79a['AnyConditions']['length']){_0x3f93ac=_['some'](_0x53d79a['AnyConditions'],this[_0x3dd8('0x68')](_0xb5f3bc,_0x53d79a['channel']));}var _0x626da4=_0xf7f52d&&_0x3c1214&&_0x3f93ac;logger[_0x3dd8('0x69')](_0x3dd8('0x6a'),util[_0x3dd8('0x3d')](_0x53d79a,{'showHidden':!![],'depth':null}),'evt',util['inspect'](_0xb5f3bc,{'showHidden':!![],'depth':null}),_0xf7f52d,_0x3c1214,_0x3f93ac);return _0x626da4;};Trigger[_0x3dd8('0x39')]['checkConditions']=function(_0x2702e0,_0x587d60){return function(_0x5f3cfc){switch(_0x5f3cfc['field']){case _0x3dd8('0x6b'):if(_0x2702e0[_0x3dd8('0x65')]===_0x587d60){if(_0x587d60===_0x3dd8('0x6c')){return _0x2702e0['ChatWebsiteId']?operators[_0x5f3cfc[_0x3dd8('0x6d')]](Number(_0x5f3cfc[_0x3dd8('0x6e')]),_0x2702e0[_0x3dd8('0x6f')]):![];}else{return _0x2702e0[_[_0x3dd8('0x70')](_0x587d60)+_0x3dd8('0x71')]?operators[_0x5f3cfc[_0x3dd8('0x6d')]](Number(_0x5f3cfc[_0x3dd8('0x6e')]),_0x2702e0[_[_0x3dd8('0x70')](_0x587d60)+'AccountId']):![];}}break;case'interaction':case'message':if(_0x2702e0[_0x3dd8('0x65')]===_0x587d60){return _0x2702e0[_0x3dd8('0x72')]?operators[_0x5f3cfc[_0x3dd8('0x6d')]](_0x5f3cfc[_0x3dd8('0x6e')],_0x2702e0[_0x3dd8('0x72')]):![];}break;case _0x3dd8('0x60'):return _0x2702e0[_0x3dd8('0x60')]?operators[_0x5f3cfc[_0x3dd8('0x6d')]](_0x5f3cfc[_0x3dd8('0x6e')],_0x2702e0[_0x3dd8('0x60')]):![];case'agent':return _0x2702e0[_0x3dd8('0x73')]?operators[_0x5f3cfc['operator']](_0x5f3cfc['value'],_0x2702e0[_0x3dd8('0x73')]):![];case'lastevent':return _0x2702e0['lastevent']?operators[_0x5f3cfc['operator']](_0x5f3cfc[_0x3dd8('0x6e')],_0x2702e0['lastevent']):![];case _0x3dd8('0x61'):return _0x2702e0['routeId']?operators[_0x5f3cfc[_0x3dd8('0x6d')]](_0x5f3cfc[_0x3dd8('0x6e')],_0x2702e0[_0x3dd8('0x61')]):![];case _0x3dd8('0x74'):if(_0x5f3cfc[_0x3dd8('0x6e')]==='null')_0x5f3cfc[_0x3dd8('0x6e')]=null;return typeof _0x2702e0[_0x3dd8('0x75')]!==_0x3dd8('0x3c')?operators[_0x5f3cfc[_0x3dd8('0x6d')]](_0x5f3cfc[_0x3dd8('0x6e')],_0x2702e0['substatus']):![];case _0x3dd8('0x76'):if(_0x2702e0[_0x3dd8('0x65')]===_0x587d60){return _0x5f3cfc[_0x3dd8('0x6e')]===_0x3dd8('0x77')&&_0x5f3cfc[_0x3dd8('0x6d')]===_0x3dd8('0x78')?!![]:![];}break;}return![];};};module[_0x3dd8('0x79')]=Trigger;