Built motion from commit 639a1a7f.|2.6.19
[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 _0xc273=['AnyConditions','debug','inspect','evt','field','account','ChatWebsiteId','value','upperFirst','operator','AccountId','interaction','message','event','membername','lastevent','null','substatus','offlineMessage','equals','util','lodash','url','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/environment','trigger','redis','defaults','localhost','socket.io-emitter','popup','winapp','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','custom:offlineMessage','prototype','info','stringify','emit','clone','undefined','motionChannel','voice','checkTriggers','triggers','hasOwnProperty','checkTrigger','merge','Actions','interface','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','data5','800','data6','winApplication','winArguments','format','name','trigger:%s:%s','action','jscripty','user:%s','trigger:%s','exec','integration','accounts','queue','routeId','urlforward','script','parse','query','search','channel','length','checkConditions'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc273,0x197));var _0x3c27=function(_0x5f309e,_0x66e31){_0x5f309e=_0x5f309e-0x0;var _0x487b5e=_0xc273[_0x5f309e];return _0x487b5e;};'use strict';var util=require(_0x3c27('0x0'));var _=require(_0x3c27('0x1'));var url=require(_0x3c27('0x2'));var Mustache=require(_0x3c27('0x3'));var Redis=require(_0x3c27('0x4'));var urlforward=require(_0x3c27('0x5'));var integration=require('./integration');var cmContact=require(_0x3c27('0x6'));var script=require(_0x3c27('0x7'));var config=require(_0x3c27('0x8'));var logger=require('../../../config/logger')(_0x3c27('0x9'));var ami=require('../ami');config[_0x3c27('0xa')]=_[_0x3c27('0xb')](config[_0x3c27('0xa')],{'host':_0x3c27('0xc'),'port':0x18eb});var io=require(_0x3c27('0xd'))(new Redis(config['redis']));var operators={'equals':function(_0x1b3d5,_0x383925){return _0x1b3d5==_0x383925;},'not_equals':function(_0x4944d7,_0x226641){return _0x4944d7!=_0x226641;}};var barAndWebActions=[_0x3c27('0xe'),_0x3c27('0x2'),_0x3c27('0xf')];function Trigger(_0x2163cc){this['triggers']=_0x2163cc['triggers'];this['agents']=_0x2163cc[_0x3c27('0x10')];this[_0x3c27('0x11')]=_0x2163cc[_0x3c27('0x11')];this['templates']=_0x2163cc[_0x3c27('0x12')];this[_0x3c27('0x13')]=_0x2163cc['voiceExtensions'];this[_0x3c27('0x14')]=_0x2163cc[_0x3c27('0x14')];this[_0x3c27('0x15')]=_0x2163cc[_0x3c27('0x15')];this[_0x3c27('0x16')]=_0x2163cc[_0x3c27('0x16')];this['sugarcrmAccounts']=_0x2163cc[_0x3c27('0x17')];this[_0x3c27('0x18')]=_0x2163cc[_0x3c27('0x18')];this[_0x3c27('0x19')]=_0x2163cc[_0x3c27('0x19')];this['vtigerAccounts']=_0x2163cc['vtigerAccounts'];this[_0x3c27('0x1a')]=_0x2163cc[_0x3c27('0x1a')];this['dynamics365Accounts']=_0x2163cc[_0x3c27('0x1b')];this[_0x3c27('0x1c')]=_0x2163cc[_0x3c27('0x1c')];this['accounts']={'zendesk':this[_0x3c27('0x14')],'salesforce':this[_0x3c27('0x16')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x3c27('0x17')],'zoho':this[_0x3c27('0x18')],'desk':this['deskAccounts'],'vtiger':this[_0x3c27('0x1d')],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x3c27('0x1a')]};ami['on'](_0x3c27('0x1e'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x21'),this['syncCustomEvent'][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x22'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x23'),this[_0x3c27('0x1f')]['bind'](this));ami['on'](_0x3c27('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3c27('0x25'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3c27('0x26'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x27'),this[_0x3c27('0x1f')]['bind'](this));ami['on'](_0x3c27('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3c27('0x29'),this['syncCustomEvent'][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x2a'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on']('custom:timeout',this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on']('custom:dialbegin',this[_0x3c27('0x2b')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x2c'),this[_0x3c27('0x2b')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x2d'),this[_0x3c27('0x2b')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x2e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x3c27('0x2f'),this[_0x3c27('0x1f')]['bind'](this));ami['on']('custom:substatus',this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x30'),this[_0x3c27('0x1f')]['bind'](this));ami['on'](_0x3c27('0x31'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on']('custom:acceptmessage',this['syncCustomEvent'][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x32'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));ami['on'](_0x3c27('0x33'),this[_0x3c27('0x1f')][_0x3c27('0x20')](this));}Trigger[_0x3c27('0x34')]['emit']=function(_0x6fa02d,_0x3d2862,_0x4fd196){logger[_0x3c27('0x35')](_0x6fa02d,_0x3d2862,JSON[_0x3c27('0x36')](_0x4fd196));io['to'](_0x6fa02d)[_0x3c27('0x37')](_0x3d2862,_0x4fd196);};Trigger[_0x3c27('0x34')][_0x3c27('0x1f')]=function(_0x3c05e3){var _0x3783b2=_[_0x3c27('0x38')](_0x3c05e3);if(typeof _0x3783b2['motionChannel']===_0x3c27('0x39')){_0x3783b2[_0x3c27('0x3a')]=_0x3c27('0x3b');}logger['debug'](_0x3c27('0x1f'),util['inspect'](_0x3783b2,{'showHidden':!![],'depth':null}));this[_0x3c27('0x3c')](_0x3783b2);};Trigger[_0x3c27('0x34')][_0x3c27('0x2b')]=function(_0x2e5cb5){if(this[_0x3c27('0x10')][_0x2e5cb5['interface']]){this[_0x3c27('0x1f')](_0x2e5cb5);}};Trigger['prototype'][_0x3c27('0x3c')]=function(_0x4b3610){var _0x92574d;for(var _0x301d41 in this[_0x3c27('0x3d')]){if(this[_0x3c27('0x3d')][_0x3c27('0x3e')](_0x301d41)){if(this[_0x3c27('0x3d')][_0x301d41]['status']){_0x92574d=this[_0x3c27('0x3f')](this[_0x3c27('0x3d')][_0x301d41],_0x4b3610);if(_0x92574d){_[_0x3c27('0x40')](_0x4b3610,_0x4b3610['variables']);for(var _0x5200c1=0x0,_0xc9cf1,_0x5b28e7,_0x1055c5;_0x5200c1<this['triggers'][_0x301d41][_0x3c27('0x41')]['length'];_0x5200c1+=0x1){_0xc9cf1=this['triggers'][_0x301d41][_0x3c27('0x41')][_0x5200c1];if(this[_0x3c27('0x10')][_0x4b3610[_0x3c27('0x42')]]){switch(_0xc9cf1['action'][_0x3c27('0x43')]()){case _0x3c27('0x44'):break;case _0x3c27('0x45'):case _0x3c27('0x46'):var _0x13a4d4={};switch(barAndWebActions[_0xc9cf1[_0x3c27('0x47')]]){case _0x3c27('0xe'):_0x13a4d4[_0x3c27('0x48')]=_0xc9cf1[_0x3c27('0x49')];_0x13a4d4[_0x3c27('0x4a')]=this[_0x3c27('0x12')][_0xc9cf1[_0x3c27('0x49')]]?Mustache[_0x3c27('0x4b')](this[_0x3c27('0x12')][_0xc9cf1['data2']][_0x3c27('0x4a')],_0x4b3610):_0x3c27('0x4c');break;case _0x3c27('0x2'):_0x13a4d4[_0x3c27('0x4d')]=this[_0x3c27('0x4e')](_0xc9cf1[_0x3c27('0x49')],_0x4b3610,_[_0x3c27('0x4f')](_0xc9cf1[_0x3c27('0x50')])?!![]:parseInt(_0xc9cf1['data3'],0xa));if(_[_0x3c27('0x4f')](_0xc9cf1[_0x3c27('0x51')])){_0x13a4d4[_0x3c27('0x52')]='0';}else{_0x13a4d4['uriLocation']=_0xc9cf1[_0x3c27('0x51')];_0x13a4d4[_0x3c27('0x53')]=_[_0x3c27('0x4f')](_0xc9cf1[_0x3c27('0x54')])?_0x3c27('0x55'):_0xc9cf1[_0x3c27('0x54')];_0x13a4d4['windowHeight']=_[_0x3c27('0x4f')](_0xc9cf1[_0x3c27('0x56')])?'600':_0xc9cf1[_0x3c27('0x56')];}break;case _0x3c27('0xf'):_0x13a4d4[_0x3c27('0x57')]=_0xc9cf1[_0x3c27('0x49')]?Mustache[_0x3c27('0x4b')](_0xc9cf1[_0x3c27('0x49')],_0x4b3610):'';_0x13a4d4[_0x3c27('0x58')]=_0xc9cf1['data3']?Mustache[_0x3c27('0x4b')](_0xc9cf1[_0x3c27('0x50')],_0x4b3610):'';break;}this[_0x3c27('0x37')](util[_0x3c27('0x59')]('user:%s',this[_0x3c27('0x10')][_0x4b3610[_0x3c27('0x42')]][_0x3c27('0x5a')]),util[_0x3c27('0x59')](_0x3c27('0x5b'),_0xc9cf1[_0x3c27('0x5c')][_0x3c27('0x43')](),barAndWebActions[_0xc9cf1[_0x3c27('0x47')]]),_['merge'](_0x13a4d4,_0x4b3610));break;case _0x3c27('0x5d'):this[_0x3c27('0x37')](util[_0x3c27('0x59')](_0x3c27('0x5e'),this[_0x3c27('0x10')][_0x4b3610[_0x3c27('0x42')]][_0x3c27('0x5a')]),util[_0x3c27('0x59')]('trigger:%s',_0xc9cf1[_0x3c27('0x5c')][_0x3c27('0x43')]()),_[_0x3c27('0x40')]({'ProjectId':parseInt(_0xc9cf1[_0x3c27('0x47')],0xa)},_0x4b3610));break;default:this[_0x3c27('0x37')](util[_0x3c27('0x59')](_0x3c27('0x5e'),this[_0x3c27('0x10')][_0x4b3610[_0x3c27('0x42')]][_0x3c27('0x5a')]),util[_0x3c27('0x59')](_0x3c27('0x5f'),_0xc9cf1['action'][_0x3c27('0x43')]()),_['merge']({},_0xc9cf1,_0x4b3610));}}switch(_0xc9cf1[_0x3c27('0x5c')][_0x3c27('0x43')]()){case'contactmanager':cmContact[_0x3c27('0x60')](this['agents'][_0x4b3610['interface']],this[_0x3c27('0x3d')][_0x301d41],_0xc9cf1,_0x4b3610);break;case _0x3c27('0x61'):integration[_0x3c27('0x60')](_0xc9cf1,_0x4b3610,this[_0x3c27('0x62')],this[_0x3c27('0x10')][_0x4b3610[_0x3c27('0x42')]],this[_0x3c27('0x11')][_0x4b3610[_0x3c27('0x63')]],this[_0x3c27('0x13')][_0x4b3610[_0x3c27('0x64')]]);break;case _0x3c27('0x65'):urlforward['exec'](_0xc9cf1,_0x4b3610);break;case _0x3c27('0x66'):script[_0x3c27('0x60')](_0xc9cf1,_0x4b3610);break;}}}}}}};Trigger[_0x3c27('0x34')][_0x3c27('0x4e')]=function(_0xac777d,_0x54f7b0,_0x388744){var _0x32d5d5=url[_0x3c27('0x67')](Mustache[_0x3c27('0x4b')](_0xac777d,_0x54f7b0),!![]);if(_0x388744){_[_0x3c27('0x40')](_0x32d5d5[_0x3c27('0x68')],_0x54f7b0);}delete _0x32d5d5[_0x3c27('0x69')];var _0xadc5ef=url['format'](_0x32d5d5);_0xadc5ef=_0xadc5ef['replace'](/\/\?/g,'?');return _0xadc5ef;};Trigger[_0x3c27('0x34')][_0x3c27('0x3f')]=function(_0x6db914,_0x339c9b){var _0x50f786=!![];var _0x1240d8=!![];var _0x15f9c4=![];if(_0x6db914[_0x3c27('0x6a')]===_0x339c9b['motionChannel']){_0x15f9c4=!![];}if(_0x6db914['AllConditions'][_0x3c27('0x6b')]){_0x50f786=_['every'](_0x6db914['AllConditions'],this[_0x3c27('0x6c')](_0x339c9b,_0x6db914[_0x3c27('0x6a')]));}if(_0x6db914[_0x3c27('0x6d')][_0x3c27('0x6b')]){_0x1240d8=_['some'](_0x6db914[_0x3c27('0x6d')],this[_0x3c27('0x6c')](_0x339c9b,_0x6db914[_0x3c27('0x6a')]));}var _0x2ba0f8=_0x15f9c4&&_0x50f786&&_0x1240d8;logger[_0x3c27('0x6e')]('checkTrigger:\x20trigger',util[_0x3c27('0x6f')](_0x6db914,{'showHidden':!![],'depth':null}),_0x3c27('0x70'),util[_0x3c27('0x6f')](_0x339c9b,{'showHidden':!![],'depth':null}),_0x15f9c4,_0x50f786,_0x1240d8);return _0x2ba0f8;};Trigger[_0x3c27('0x34')][_0x3c27('0x6c')]=function(_0x29e242,_0xa050a1){return function(_0x4e69d1){switch(_0x4e69d1[_0x3c27('0x71')]){case _0x3c27('0x72'):if(_0x29e242[_0x3c27('0x6a')]===_0xa050a1){if(_0xa050a1==='chat'){return _0x29e242[_0x3c27('0x73')]?operators[_0x4e69d1['operator']](Number(_0x4e69d1[_0x3c27('0x74')]),_0x29e242[_0x3c27('0x73')]):![];}else{return _0x29e242[_[_0x3c27('0x75')](_0xa050a1)+'AccountId']?operators[_0x4e69d1[_0x3c27('0x76')]](Number(_0x4e69d1[_0x3c27('0x74')]),_0x29e242[_[_0x3c27('0x75')](_0xa050a1)+_0x3c27('0x77')]):![];}}break;case _0x3c27('0x78'):case _0x3c27('0x79'):if(_0x29e242['channel']===_0xa050a1){return _0x29e242[_0x3c27('0x7a')]?operators[_0x4e69d1['operator']](_0x4e69d1[_0x3c27('0x74')],_0x29e242[_0x3c27('0x7a')]):![];}break;case _0x3c27('0x63'):return _0x29e242[_0x3c27('0x63')]?operators[_0x4e69d1[_0x3c27('0x76')]](_0x4e69d1['value'],_0x29e242[_0x3c27('0x63')]):![];case'agent':return _0x29e242[_0x3c27('0x7b')]?operators[_0x4e69d1[_0x3c27('0x76')]](_0x4e69d1[_0x3c27('0x74')],_0x29e242['membername']):![];case'lastevent':return _0x29e242[_0x3c27('0x7c')]?operators[_0x4e69d1[_0x3c27('0x76')]](_0x4e69d1['value'],_0x29e242[_0x3c27('0x7c')]):![];case'routeId':return _0x29e242['routeId']?operators[_0x4e69d1[_0x3c27('0x76')]](_0x4e69d1['value'],_0x29e242[_0x3c27('0x64')]):![];case'mailSubstatus':if(_0x4e69d1['value']===_0x3c27('0x7d'))_0x4e69d1['value']=null;return typeof _0x29e242[_0x3c27('0x7e')]!==_0x3c27('0x39')?operators[_0x4e69d1[_0x3c27('0x76')]](_0x4e69d1[_0x3c27('0x74')],_0x29e242[_0x3c27('0x7e')]):![];case _0x3c27('0x7f'):if(_0x29e242[_0x3c27('0x6a')]===_0xa050a1){return _0x4e69d1[_0x3c27('0x74')]==='created'&&_0x4e69d1[_0x3c27('0x76')]===_0x3c27('0x80')?!![]:![];}break;}return![];};};module['exports']=Trigger;