83ef1540871368741e9244a1f33579bd3020124d
[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 _0x1cde=['query','search','replace','checkTrigger','AllConditions','length','channel','AnyConditions','checkConditions','field','account','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','membername','lastevent','routeId','exports','util','lodash','url','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','stringify','clone','checkTriggers','interface','merge','variables','Actions','action','contactmanager','data1','data2','render','html','data3','isNil','data4','location','windowWidth','data5','800','windowHeight','data6','600','winApplication','user:%s','name','format','toLowerCase','jscripty','trigger:%s','exec','integration','queue','voiceExtensions','urlforward','script','buildUri','parse'];(function(_0x120594,_0xa3f53c){var _0x29f3c0=function(_0x264294){while(--_0x264294){_0x120594['push'](_0x120594['shift']());}};_0x29f3c0(++_0xa3f53c);}(_0x1cde,0x1e7));var _0xe1cd=function(_0x5b0c7d,_0x4ad3e2){_0x5b0c7d=_0x5b0c7d-0x0;var _0x42aab8=_0x1cde[_0x5b0c7d];return _0x42aab8;};'use strict';var util=require(_0xe1cd('0x0'));var _=require(_0xe1cd('0x1'));var url=require(_0xe1cd('0x2'));var Mustache=require('mustache');var Redis=require(_0xe1cd('0x3'));var urlforward=require(_0xe1cd('0x4'));var integration=require(_0xe1cd('0x5'));var cmContact=require(_0xe1cd('0x6'));var script=require(_0xe1cd('0x7'));var config=require(_0xe1cd('0x8'));var logger=require(_0xe1cd('0x9'))(_0xe1cd('0xa'));var ami=require(_0xe1cd('0xb'));config['redis']=_['defaults'](config[_0xe1cd('0xc')],{'host':_0xe1cd('0xd'),'port':0x18eb});var io=require(_0xe1cd('0xe'))(new Redis(config[_0xe1cd('0xc')]));var operators={'equals':function(_0x27a4bf,_0x22a3e4){return _0x27a4bf==_0x22a3e4;},'not_equals':function(_0x267f96,_0x199422){return _0x267f96!=_0x199422;}};var barAndWebActions=[_0xe1cd('0xf'),_0xe1cd('0x2'),_0xe1cd('0x10')];function Trigger(_0x3b84e1){this[_0xe1cd('0x11')]=_0x3b84e1[_0xe1cd('0x11')];this[_0xe1cd('0x12')]=_0x3b84e1[_0xe1cd('0x12')];this[_0xe1cd('0x13')]=_0x3b84e1['voiceQueues'];this['templates']=_0x3b84e1[_0xe1cd('0x14')];this['voiceExtensions']=_0x3b84e1['voiceExtensions'];this[_0xe1cd('0x15')]=_0x3b84e1[_0xe1cd('0x15')];this['freshdeskAccounts']=_0x3b84e1[_0xe1cd('0x16')];this[_0xe1cd('0x17')]=_0x3b84e1['salesforceAccounts'];this[_0xe1cd('0x18')]=_0x3b84e1['sugarcrmAccounts'];this[_0xe1cd('0x19')]=_0x3b84e1[_0xe1cd('0x19')];this[_0xe1cd('0x1a')]=_0x3b84e1['deskAccounts'];this[_0xe1cd('0x1b')]=_0x3b84e1[_0xe1cd('0x1b')];this['servicenowAccounts']=_0x3b84e1[_0xe1cd('0x1c')];this[_0xe1cd('0x1d')]=_0x3b84e1['dynamics365Accounts'];this[_0xe1cd('0x1e')]=_0x3b84e1[_0xe1cd('0x1e')];this[_0xe1cd('0x1f')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xe1cd('0x17')],'freshdesk':this[_0xe1cd('0x16')],'sugarcrm':this[_0xe1cd('0x18')],'zoho':this[_0xe1cd('0x19')],'desk':this['deskAccounts'],'vtiger':this[_0xe1cd('0x1b')],'dynamics365':this[_0xe1cd('0x1d')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xe1cd('0x1c')]};ami['on'](_0xe1cd('0x20'),this[_0xe1cd('0x21')][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x23'),this['syncCustomEvent'][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x24'),this['syncCustomEvent'][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x25'),this[_0xe1cd('0x21')]['bind'](this));ami['on'](_0xe1cd('0x26'),this['syncCustomEvent']['bind'](this));ami['on'](_0xe1cd('0x27'),this[_0xe1cd('0x21')]['bind'](this));ami['on']('custom:agentbusy',this[_0xe1cd('0x21')][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0xe1cd('0x29'),this['syncCustomEvent'][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x2a'),this[_0xe1cd('0x21')]['bind'](this));ami['on'](_0xe1cd('0x2b'),this[_0xe1cd('0x21')][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x2c'),this['syncAgentDial'][_0xe1cd('0x22')](this));ami['on']('custom:dialconnect',this[_0xe1cd('0x2d')]['bind'](this));ami['on'](_0xe1cd('0x2e'),this[_0xe1cd('0x2d')][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x2f'),this[_0xe1cd('0x21')]['bind'](this));ami['on'](_0xe1cd('0x30'),this[_0xe1cd('0x21')][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x31'),this[_0xe1cd('0x21')]['bind'](this));ami['on'](_0xe1cd('0x32'),this['syncCustomEvent'][_0xe1cd('0x22')](this));ami['on'](_0xe1cd('0x33'),this[_0xe1cd('0x21')]['bind'](this));ami['on'](_0xe1cd('0x34'),this[_0xe1cd('0x21')][_0xe1cd('0x22')](this));}Trigger[_0xe1cd('0x35')][_0xe1cd('0x36')]=function(_0x534d5c,_0x3a7b14,_0x19a4b4){logger['info'](_0x534d5c,_0x3a7b14,JSON[_0xe1cd('0x37')](_0x19a4b4));io['to'](_0x534d5c)[_0xe1cd('0x36')](_0x3a7b14,_0x19a4b4);};Trigger['prototype'][_0xe1cd('0x21')]=function(_0x2f2b60){var _0x45a345=_[_0xe1cd('0x38')](_0x2f2b60);this[_0xe1cd('0x39')](_0x45a345);};Trigger['prototype'][_0xe1cd('0x2d')]=function(_0x5e0a23){if(this[_0xe1cd('0x12')][_0x5e0a23[_0xe1cd('0x3a')]]){this[_0xe1cd('0x21')](_0x5e0a23);}};Trigger[_0xe1cd('0x35')]['checkTriggers']=function(_0x141d72){var _0x392a4f;for(var _0x372449 in this[_0xe1cd('0x11')]){if(this[_0xe1cd('0x11')]['hasOwnProperty'](_0x372449)){if(this[_0xe1cd('0x11')][_0x372449]['status']){_0x392a4f=this['checkTrigger'](this['triggers'][_0x372449],_0x141d72);if(_0x392a4f){_[_0xe1cd('0x3b')](_0x141d72,_0x141d72[_0xe1cd('0x3c')]);for(var _0x4bc25b=0x0,_0x47532b,_0x3a3ca0,_0x3c8f3b;_0x4bc25b<this[_0xe1cd('0x11')][_0x372449][_0xe1cd('0x3d')]['length'];_0x4bc25b+=0x1){_0x47532b=this[_0xe1cd('0x11')][_0x372449][_0xe1cd('0x3d')][_0x4bc25b];if(this[_0xe1cd('0x12')][_0x141d72[_0xe1cd('0x3a')]]){switch(_0x47532b[_0xe1cd('0x3e')]['toLowerCase']()){case _0xe1cd('0x3f'):break;case'motionbar':case'browser':var _0x446890={};switch(barAndWebActions[_0x47532b[_0xe1cd('0x40')]]){case _0xe1cd('0xf'):_0x446890['TemplateId']=_0x47532b[_0xe1cd('0x41')];_0x446890['html']=this['templates'][_0x47532b[_0xe1cd('0x41')]]?Mustache[_0xe1cd('0x42')](this[_0xe1cd('0x14')][_0x47532b['data2']][_0xe1cd('0x43')],_0x141d72):'template\x20not\x20found';break;case'url':_0x446890['uri']=this['buildUri'](_0x47532b['data2'],_0x141d72,_['isNil'](_0x47532b[_0xe1cd('0x44')])?!![]:parseInt(_0x47532b[_0xe1cd('0x44')],0xa));if(_[_0xe1cd('0x45')](_0x47532b[_0xe1cd('0x46')])){_0x446890[_0xe1cd('0x47')]='0';}else{_0x446890['uriLocation']=_0x47532b[_0xe1cd('0x46')];_0x446890[_0xe1cd('0x48')]=_['isNil'](_0x47532b[_0xe1cd('0x49')])?_0xe1cd('0x4a'):_0x47532b[_0xe1cd('0x49')];_0x446890[_0xe1cd('0x4b')]=_['isNil'](_0x47532b[_0xe1cd('0x4c')])?_0xe1cd('0x4d'):_0x47532b['data6'];}break;case _0xe1cd('0x10'):_0x446890[_0xe1cd('0x4e')]=_0x47532b['data2']?Mustache[_0xe1cd('0x42')](_0x47532b['data2'],_0x141d72):'';_0x446890['winArguments']=_0x47532b[_0xe1cd('0x44')]?Mustache[_0xe1cd('0x42')](_0x47532b[_0xe1cd('0x44')],_0x141d72):'';break;}this[_0xe1cd('0x36')](util['format'](_0xe1cd('0x4f'),this[_0xe1cd('0x12')][_0x141d72['interface']][_0xe1cd('0x50')]),util[_0xe1cd('0x51')]('trigger:%s:%s',_0x47532b[_0xe1cd('0x3e')][_0xe1cd('0x52')](),barAndWebActions[_0x47532b[_0xe1cd('0x40')]]),_['merge'](_0x446890,_0x141d72));break;case _0xe1cd('0x53'):this[_0xe1cd('0x36')](util['format'](_0xe1cd('0x4f'),this[_0xe1cd('0x12')][_0x141d72[_0xe1cd('0x3a')]][_0xe1cd('0x50')]),util[_0xe1cd('0x51')](_0xe1cd('0x54'),_0x47532b['action'][_0xe1cd('0x52')]()),_['merge']({'ProjectId':parseInt(_0x47532b[_0xe1cd('0x40')],0xa)},_0x141d72));break;default:this['emit'](util['format'](_0xe1cd('0x4f'),this[_0xe1cd('0x12')][_0x141d72[_0xe1cd('0x3a')]][_0xe1cd('0x50')]),util[_0xe1cd('0x51')](_0xe1cd('0x54'),_0x47532b[_0xe1cd('0x3e')][_0xe1cd('0x52')]()),_[_0xe1cd('0x3b')]({},_0x47532b,_0x141d72));}}switch(_0x47532b[_0xe1cd('0x3e')][_0xe1cd('0x52')]()){case _0xe1cd('0x3f'):cmContact[_0xe1cd('0x55')](this[_0xe1cd('0x12')][_0x141d72[_0xe1cd('0x3a')]],this['triggers'][_0x372449],_0x47532b,_0x141d72);break;case _0xe1cd('0x56'):integration[_0xe1cd('0x55')](_0x47532b,_0x141d72,this[_0xe1cd('0x1f')],this[_0xe1cd('0x12')][_0x141d72[_0xe1cd('0x3a')]],this[_0xe1cd('0x13')][_0x141d72[_0xe1cd('0x57')]],this[_0xe1cd('0x58')][_0x141d72['routeId']]);break;case _0xe1cd('0x59'):urlforward[_0xe1cd('0x55')](_0x47532b,_0x141d72);break;case _0xe1cd('0x5a'):script[_0xe1cd('0x55')](_0x47532b,_0x141d72);break;}}}}}}};Trigger[_0xe1cd('0x35')][_0xe1cd('0x5b')]=function(_0x38fa74,_0x20c0ab,_0x4eff35){var _0x4cf6c2=url[_0xe1cd('0x5c')](Mustache[_0xe1cd('0x42')](_0x38fa74,_0x20c0ab),!![]);if(_0x4eff35){_['merge'](_0x4cf6c2[_0xe1cd('0x5d')],_0x20c0ab);}delete _0x4cf6c2[_0xe1cd('0x5e')];var _0x4b1b4f=url[_0xe1cd('0x51')](_0x4cf6c2);_0x4b1b4f=_0x4b1b4f[_0xe1cd('0x5f')](/\/\?/g,'?');return _0x4b1b4f;};Trigger[_0xe1cd('0x35')][_0xe1cd('0x60')]=function(_0x4a02b0,_0x4e340b){var _0x5eed30=!![],_0x20b6db=!![];if(_0x4a02b0[_0xe1cd('0x61')][_0xe1cd('0x62')]){_0x5eed30=_['every'](_0x4a02b0[_0xe1cd('0x61')],this['checkConditions'](_0x4e340b,_0x4a02b0[_0xe1cd('0x63')]));}if(_0x4a02b0[_0xe1cd('0x64')]['length']){_0x20b6db=_['some'](_0x4a02b0[_0xe1cd('0x64')],this[_0xe1cd('0x65')](_0x4e340b,_0x4a02b0['channel']));}return _0x5eed30&&_0x20b6db;};Trigger[_0xe1cd('0x35')][_0xe1cd('0x65')]=function(_0x527a3d,_0x9ffb25){return function(_0x995088){switch(_0x995088[_0xe1cd('0x66')]){case _0xe1cd('0x67'):if(_0x527a3d[_0xe1cd('0x63')]===_0x9ffb25){if(_0x9ffb25==='chat'){return _0x527a3d[_0xe1cd('0x68')]?operators[_0x995088[_0xe1cd('0x69')]](Number(_0x995088[_0xe1cd('0x6a')]),_0x527a3d['ChatWebsiteId']):![];}else{return _0x527a3d[_[_0xe1cd('0x6b')](_0x9ffb25)+_0xe1cd('0x6c')]?operators[_0x995088[_0xe1cd('0x69')]](Number(_0x995088[_0xe1cd('0x6a')]),_0x527a3d[_[_0xe1cd('0x6b')](_0x9ffb25)+_0xe1cd('0x6c')]):![];}}break;case _0xe1cd('0x6d'):case _0xe1cd('0x6e'):if(_0x527a3d[_0xe1cd('0x63')]===_0x9ffb25){return _0x527a3d[_0xe1cd('0x6f')]?operators[_0x995088['operator']](_0x995088[_0xe1cd('0x6a')],_0x527a3d[_0xe1cd('0x6f')]):![];}break;case'queue':return _0x527a3d['queue']?operators[_0x995088['operator']](_0x995088[_0xe1cd('0x6a')],_0x527a3d[_0xe1cd('0x57')]):![];case'agent':return _0x527a3d[_0xe1cd('0x70')]?operators[_0x995088[_0xe1cd('0x69')]](_0x995088[_0xe1cd('0x6a')],_0x527a3d['membername']):![];case'lastevent':return _0x527a3d[_0xe1cd('0x71')]?operators[_0x995088[_0xe1cd('0x69')]](_0x995088['value'],_0x527a3d[_0xe1cd('0x71')]):![];case _0xe1cd('0x72'):return _0x527a3d[_0xe1cd('0x72')]?operators[_0x995088[_0xe1cd('0x69')]](_0x995088[_0xe1cd('0x6a')],_0x527a3d[_0xe1cd('0x72')]):![];}return![];};};module[_0xe1cd('0x73')]=Trigger;