Built motion from commit 9e1399f3.|2.5.37
[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 _0xb10f=['syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','motionChannel','undefined','checkTriggers','interface','triggers','hasOwnProperty','status','checkTrigger','merge','length','action','contactmanager','data1','popup','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','800','data5','data6','600','winApplication','format','user:%s','name','trigger:%s:%s','toLowerCase','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','script','query','search','channel','AllConditions','every','checkConditions','AnyConditions','account','chat','operator','ChatWebsiteId','upperFirst','AccountId','value','interaction','event','membername','lastevent','mailSubstatus','null','substatus','exports','util','lodash','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','url','winapp','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','freshdeskAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd'];(function(_0x54b833,_0x394ccc){var _0x4c1472=function(_0x3e553c){while(--_0x3e553c){_0x54b833['push'](_0x54b833['shift']());}};_0x4c1472(++_0x394ccc);}(_0xb10f,0x1ba));var _0xfb10=function(_0x5e7c87,_0x422d37){_0x5e7c87=_0x5e7c87-0x0;var _0x5000af=_0xb10f[_0x5e7c87];return _0x5000af;};'use strict';var util=require(_0xfb10('0x0'));var _=require(_0xfb10('0x1'));var url=require('url');var Mustache=require(_0xfb10('0x2'));var Redis=require(_0xfb10('0x3'));var urlforward=require(_0xfb10('0x4'));var integration=require('./integration');var cmContact=require(_0xfb10('0x5'));var script=require(_0xfb10('0x6'));var config=require('../../../config/environment');var logger=require(_0xfb10('0x7'))(_0xfb10('0x8'));var ami=require('../ami');config[_0xfb10('0x9')]=_[_0xfb10('0xa')](config[_0xfb10('0x9')],{'host':_0xfb10('0xb'),'port':0x18eb});var io=require(_0xfb10('0xc'))(new Redis(config[_0xfb10('0x9')]));var operators={'equals':function(_0x3a0926,_0x549208){return _0x3a0926==_0x549208;},'not_equals':function(_0x4c0f22,_0x41bc28){return _0x4c0f22!=_0x41bc28;}};var barAndWebActions=['popup',_0xfb10('0xd'),_0xfb10('0xe')];function Trigger(_0x35b9b7){this['triggers']=_0x35b9b7['triggers'];this[_0xfb10('0xf')]=_0x35b9b7[_0xfb10('0xf')];this[_0xfb10('0x10')]=_0x35b9b7[_0xfb10('0x10')];this[_0xfb10('0x11')]=_0x35b9b7[_0xfb10('0x11')];this[_0xfb10('0x12')]=_0x35b9b7[_0xfb10('0x12')];this[_0xfb10('0x13')]=_0x35b9b7[_0xfb10('0x13')];this['freshdeskAccounts']=_0x35b9b7['freshdeskAccounts'];this[_0xfb10('0x14')]=_0x35b9b7[_0xfb10('0x14')];this[_0xfb10('0x15')]=_0x35b9b7[_0xfb10('0x15')];this[_0xfb10('0x16')]=_0x35b9b7[_0xfb10('0x16')];this[_0xfb10('0x17')]=_0x35b9b7[_0xfb10('0x17')];this[_0xfb10('0x18')]=_0x35b9b7[_0xfb10('0x18')];this[_0xfb10('0x19')]=_0x35b9b7[_0xfb10('0x19')];this[_0xfb10('0x1a')]=_0x35b9b7[_0xfb10('0x1a')];this[_0xfb10('0x1b')]=_0x35b9b7[_0xfb10('0x1b')];this[_0xfb10('0x1c')]={'zendesk':this[_0xfb10('0x13')],'salesforce':this[_0xfb10('0x14')],'freshdesk':this[_0xfb10('0x1d')],'sugarcrm':this[_0xfb10('0x15')],'zoho':this[_0xfb10('0x16')],'desk':this['deskAccounts'],'vtiger':this[_0xfb10('0x18')],'dynamics365':this[_0xfb10('0x1a')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0xfb10('0x1e'),this[_0xfb10('0x1f')][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x21'),this[_0xfb10('0x1f')][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x22'),this['syncCustomEvent'][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x23'),this[_0xfb10('0x1f')]['bind'](this));ami['on'](_0xfb10('0x24'),this[_0xfb10('0x1f')]['bind'](this));ami['on'](_0xfb10('0x25'),this[_0xfb10('0x1f')]['bind'](this));ami['on'](_0xfb10('0x26'),this['syncCustomEvent'][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x27'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfb10('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfb10('0x29'),this['syncCustomEvent']['bind'](this));ami['on']('custom:queuecallerabandon',this[_0xfb10('0x1f')]['bind'](this));ami['on']('custom:timeout',this[_0xfb10('0x1f')][_0xfb10('0x20')](this));ami['on']('custom:dialbegin',this[_0xfb10('0x2a')][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x2b'),this[_0xfb10('0x2a')]['bind'](this));ami['on'](_0xfb10('0x2c'),this[_0xfb10('0x2a')][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x2d'),this['syncCustomEvent']['bind'](this));ami['on'](_0xfb10('0x2e'),this[_0xfb10('0x1f')][_0xfb10('0x20')](this));ami['on']('custom:substatus',this['syncCustomEvent'][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x2f'),this['syncCustomEvent'][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x30'),this[_0xfb10('0x1f')][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x31'),this[_0xfb10('0x1f')][_0xfb10('0x20')](this));ami['on'](_0xfb10('0x32'),this[_0xfb10('0x1f')]['bind'](this));}Trigger[_0xfb10('0x33')][_0xfb10('0x34')]=function(_0x4aed86,_0x53efe3,_0x6683e1){logger[_0xfb10('0x35')](_0x4aed86,_0x53efe3,JSON[_0xfb10('0x36')](_0x6683e1));io['to'](_0x4aed86)[_0xfb10('0x34')](_0x53efe3,_0x6683e1);};Trigger[_0xfb10('0x33')][_0xfb10('0x1f')]=function(_0x168272){var _0x58cc41=_['clone'](_0x168272);if(typeof _0x58cc41[_0xfb10('0x37')]===_0xfb10('0x38')){_0x58cc41['motionChannel']='voice';}this[_0xfb10('0x39')](_0x58cc41);};Trigger[_0xfb10('0x33')][_0xfb10('0x2a')]=function(_0x24d970){if(this['agents'][_0x24d970[_0xfb10('0x3a')]]){this['syncCustomEvent'](_0x24d970);}};Trigger['prototype'][_0xfb10('0x39')]=function(_0x32b713){var _0x410f0c;for(var _0x296a19 in this[_0xfb10('0x3b')]){if(this['triggers'][_0xfb10('0x3c')](_0x296a19)){if(this[_0xfb10('0x3b')][_0x296a19][_0xfb10('0x3d')]){_0x410f0c=this[_0xfb10('0x3e')](this[_0xfb10('0x3b')][_0x296a19],_0x32b713);if(_0x410f0c){_[_0xfb10('0x3f')](_0x32b713,_0x32b713['variables']);for(var _0x369677=0x0,_0x88d7dc,_0x562dc0,_0x10a61f;_0x369677<this[_0xfb10('0x3b')][_0x296a19]['Actions'][_0xfb10('0x40')];_0x369677+=0x1){_0x88d7dc=this['triggers'][_0x296a19]['Actions'][_0x369677];if(this[_0xfb10('0xf')][_0x32b713[_0xfb10('0x3a')]]){switch(_0x88d7dc[_0xfb10('0x41')]['toLowerCase']()){case _0xfb10('0x42'):break;case'motionbar':case'browser':var _0x17cc84={};switch(barAndWebActions[_0x88d7dc[_0xfb10('0x43')]]){case _0xfb10('0x44'):_0x17cc84[_0xfb10('0x45')]=_0x88d7dc[_0xfb10('0x46')];_0x17cc84[_0xfb10('0x47')]=this[_0xfb10('0x11')][_0x88d7dc[_0xfb10('0x46')]]?Mustache[_0xfb10('0x48')](this[_0xfb10('0x11')][_0x88d7dc[_0xfb10('0x46')]][_0xfb10('0x47')],_0x32b713):_0xfb10('0x49');break;case _0xfb10('0xd'):_0x17cc84[_0xfb10('0x4a')]=this[_0xfb10('0x4b')](_0x88d7dc[_0xfb10('0x46')],_0x32b713,_[_0xfb10('0x4c')](_0x88d7dc[_0xfb10('0x4d')])?!![]:parseInt(_0x88d7dc[_0xfb10('0x4d')],0xa));if(_[_0xfb10('0x4c')](_0x88d7dc[_0xfb10('0x4e')])){_0x17cc84[_0xfb10('0x4f')]='0';}else{_0x17cc84['uriLocation']=_0x88d7dc[_0xfb10('0x4e')];_0x17cc84[_0xfb10('0x50')]=_[_0xfb10('0x4c')](_0x88d7dc['data5'])?_0xfb10('0x51'):_0x88d7dc[_0xfb10('0x52')];_0x17cc84['windowHeight']=_['isNil'](_0x88d7dc[_0xfb10('0x53')])?_0xfb10('0x54'):_0x88d7dc[_0xfb10('0x53')];}break;case _0xfb10('0xe'):_0x17cc84[_0xfb10('0x55')]=_0x88d7dc['data2']?Mustache[_0xfb10('0x48')](_0x88d7dc[_0xfb10('0x46')],_0x32b713):'';_0x17cc84['winArguments']=_0x88d7dc[_0xfb10('0x4d')]?Mustache[_0xfb10('0x48')](_0x88d7dc[_0xfb10('0x4d')],_0x32b713):'';break;}this[_0xfb10('0x34')](util[_0xfb10('0x56')](_0xfb10('0x57'),this[_0xfb10('0xf')][_0x32b713['interface']][_0xfb10('0x58')]),util[_0xfb10('0x56')](_0xfb10('0x59'),_0x88d7dc['action'][_0xfb10('0x5a')](),barAndWebActions[_0x88d7dc[_0xfb10('0x43')]]),_[_0xfb10('0x3f')](_0x17cc84,_0x32b713));break;case _0xfb10('0x5b'):this[_0xfb10('0x34')](util[_0xfb10('0x56')]('user:%s',this[_0xfb10('0xf')][_0x32b713['interface']]['name']),util[_0xfb10('0x56')](_0xfb10('0x5c'),_0x88d7dc[_0xfb10('0x41')]['toLowerCase']()),_[_0xfb10('0x3f')]({'ProjectId':parseInt(_0x88d7dc[_0xfb10('0x43')],0xa)},_0x32b713));break;default:this[_0xfb10('0x34')](util[_0xfb10('0x56')](_0xfb10('0x57'),this[_0xfb10('0xf')][_0x32b713[_0xfb10('0x3a')]][_0xfb10('0x58')]),util[_0xfb10('0x56')](_0xfb10('0x5c'),_0x88d7dc['action']['toLowerCase']()),_['merge']({},_0x88d7dc,_0x32b713));}}switch(_0x88d7dc[_0xfb10('0x41')][_0xfb10('0x5a')]()){case _0xfb10('0x42'):cmContact[_0xfb10('0x5d')](this[_0xfb10('0xf')][_0x32b713['interface']],this['triggers'][_0x296a19],_0x88d7dc,_0x32b713);break;case _0xfb10('0x5e'):integration['exec'](_0x88d7dc,_0x32b713,this['accounts'],this['agents'][_0x32b713[_0xfb10('0x3a')]],this['voiceQueues'][_0x32b713[_0xfb10('0x5f')]],this[_0xfb10('0x12')][_0x32b713[_0xfb10('0x60')]]);break;case _0xfb10('0x61'):urlforward[_0xfb10('0x5d')](_0x88d7dc,_0x32b713);break;case _0xfb10('0x62'):script[_0xfb10('0x5d')](_0x88d7dc,_0x32b713);break;}}}}}}};Trigger['prototype']['buildUri']=function(_0x2008f6,_0x34cc33,_0x4d2edd){var _0x173473=url['parse'](Mustache[_0xfb10('0x48')](_0x2008f6,_0x34cc33),!![]);if(_0x4d2edd){_[_0xfb10('0x3f')](_0x173473[_0xfb10('0x63')],_0x34cc33);}delete _0x173473[_0xfb10('0x64')];var _0x436ff3=url[_0xfb10('0x56')](_0x173473);_0x436ff3=_0x436ff3['replace'](/\/\?/g,'?');return _0x436ff3;};Trigger['prototype'][_0xfb10('0x3e')]=function(_0x5bde43,_0x45581b){var _0x298576=!![];var _0x58ffa6=!![];var _0x2993b2=![];if(_0x5bde43[_0xfb10('0x65')]===_0x45581b[_0xfb10('0x37')]){_0x2993b2=!![];}if(_0x5bde43[_0xfb10('0x66')]['length']){_0x298576=_[_0xfb10('0x67')](_0x5bde43[_0xfb10('0x66')],this[_0xfb10('0x68')](_0x45581b,_0x5bde43[_0xfb10('0x65')]));}if(_0x5bde43[_0xfb10('0x69')][_0xfb10('0x40')]){_0x58ffa6=_['some'](_0x5bde43[_0xfb10('0x69')],this[_0xfb10('0x68')](_0x45581b,_0x5bde43['channel']));}return _0x2993b2&&_0x298576&&_0x58ffa6;};Trigger[_0xfb10('0x33')][_0xfb10('0x68')]=function(_0x52f0c6,_0x4c6486){return function(_0x5cc2bb){switch(_0x5cc2bb['field']){case _0xfb10('0x6a'):if(_0x52f0c6[_0xfb10('0x65')]===_0x4c6486){if(_0x4c6486===_0xfb10('0x6b')){return _0x52f0c6['ChatWebsiteId']?operators[_0x5cc2bb[_0xfb10('0x6c')]](Number(_0x5cc2bb['value']),_0x52f0c6[_0xfb10('0x6d')]):![];}else{return _0x52f0c6[_[_0xfb10('0x6e')](_0x4c6486)+_0xfb10('0x6f')]?operators[_0x5cc2bb['operator']](Number(_0x5cc2bb[_0xfb10('0x70')]),_0x52f0c6[_[_0xfb10('0x6e')](_0x4c6486)+_0xfb10('0x6f')]):![];}}break;case _0xfb10('0x71'):case'message':if(_0x52f0c6[_0xfb10('0x65')]===_0x4c6486){return _0x52f0c6[_0xfb10('0x72')]?operators[_0x5cc2bb[_0xfb10('0x6c')]](_0x5cc2bb['value'],_0x52f0c6[_0xfb10('0x72')]):![];}break;case _0xfb10('0x5f'):return _0x52f0c6[_0xfb10('0x5f')]?operators[_0x5cc2bb[_0xfb10('0x6c')]](_0x5cc2bb[_0xfb10('0x70')],_0x52f0c6[_0xfb10('0x5f')]):![];case'agent':return _0x52f0c6['membername']?operators[_0x5cc2bb[_0xfb10('0x6c')]](_0x5cc2bb[_0xfb10('0x70')],_0x52f0c6[_0xfb10('0x73')]):![];case'lastevent':return _0x52f0c6[_0xfb10('0x74')]?operators[_0x5cc2bb[_0xfb10('0x6c')]](_0x5cc2bb[_0xfb10('0x70')],_0x52f0c6['lastevent']):![];case _0xfb10('0x60'):return _0x52f0c6['routeId']?operators[_0x5cc2bb[_0xfb10('0x6c')]](_0x5cc2bb['value'],_0x52f0c6[_0xfb10('0x60')]):![];case _0xfb10('0x75'):if(_0x5cc2bb['value']===_0xfb10('0x76'))_0x5cc2bb['value']=null;return typeof _0x52f0c6[_0xfb10('0x77')]!==_0xfb10('0x38')?operators[_0x5cc2bb['operator']](_0x5cc2bb['value'],_0x52f0c6[_0xfb10('0x77')]):![];}return![];};};module[_0xfb10('0x78')]=Trigger;