5aa95bd31b01eb2bdbc25d2a06daf559d4b2a58f
[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 _0xf0f1=['channel','AnyConditions','some','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','queue','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','created','exports','lodash','url','mustache','./integration','./script','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','popup','triggers','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','checkTriggers','hasOwnProperty','status','checkTrigger','merge','Actions','agents','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','template\x20not\x20found','uri','buildUri','data3','isNil','location','uriLocation','data4','data5','800','windowHeight','data6','600','winapp','winApplication','render','winArguments','format','user:%s','name','trigger:%s:%s','jscripty','exec','integration','routeId','script','search','AllConditions','length','every','checkConditions'];(function(_0x38c9bf,_0x17fa64){var _0x352873=function(_0xb2b3e5){while(--_0xb2b3e5){_0x38c9bf['push'](_0x38c9bf['shift']());}};_0x352873(++_0x17fa64);}(_0xf0f1,0x110));var _0x1f0f=function(_0x261522,_0x1adc1f){_0x261522=_0x261522-0x0;var _0x98a25a=_0xf0f1[_0x261522];return _0x98a25a;};'use strict';var util=require('util');var _=require(_0x1f0f('0x0'));var url=require(_0x1f0f('0x1'));var Mustache=require(_0x1f0f('0x2'));var Redis=require('ioredis');var urlforward=require('./urlforward');var integration=require(_0x1f0f('0x3'));var cmContact=require('./cmContact');var script=require(_0x1f0f('0x4'));var config=require('../../../config/environment');var logger=require(_0x1f0f('0x5'))(_0x1f0f('0x6'));var ami=require(_0x1f0f('0x7'));config['redis']=_[_0x1f0f('0x8')](config[_0x1f0f('0x9')],{'host':_0x1f0f('0xa'),'port':0x18eb});var io=require(_0x1f0f('0xb'))(new Redis(config[_0x1f0f('0x9')]));var operators={'equals':function(_0x424300,_0x3a8f03){return _0x424300==_0x3a8f03;},'not_equals':function(_0x4ed5fb,_0x54cd2c){return _0x4ed5fb!=_0x54cd2c;}};var barAndWebActions=[_0x1f0f('0xc'),_0x1f0f('0x1'),'winapp'];function Trigger(_0x5f6eb8){this[_0x1f0f('0xd')]=_0x5f6eb8[_0x1f0f('0xd')];this['agents']=_0x5f6eb8['agents'];this[_0x1f0f('0xe')]=_0x5f6eb8['voiceQueues'];this[_0x1f0f('0xf')]=_0x5f6eb8[_0x1f0f('0xf')];this[_0x1f0f('0x10')]=_0x5f6eb8[_0x1f0f('0x10')];this[_0x1f0f('0x11')]=_0x5f6eb8[_0x1f0f('0x11')];this[_0x1f0f('0x12')]=_0x5f6eb8[_0x1f0f('0x12')];this[_0x1f0f('0x13')]=_0x5f6eb8[_0x1f0f('0x13')];this[_0x1f0f('0x14')]=_0x5f6eb8[_0x1f0f('0x14')];this[_0x1f0f('0x15')]=_0x5f6eb8[_0x1f0f('0x15')];this[_0x1f0f('0x16')]=_0x5f6eb8['deskAccounts'];this[_0x1f0f('0x17')]=_0x5f6eb8[_0x1f0f('0x17')];this[_0x1f0f('0x18')]=_0x5f6eb8[_0x1f0f('0x18')];this[_0x1f0f('0x19')]=_0x5f6eb8[_0x1f0f('0x19')];this[_0x1f0f('0x1a')]=_0x5f6eb8[_0x1f0f('0x1a')];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x1f0f('0x13')],'freshdesk':this[_0x1f0f('0x12')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0x1f0f('0x16')],'vtiger':this[_0x1f0f('0x17')],'dynamics365':this[_0x1f0f('0x19')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x1f0f('0x18')]};ami['on'](_0x1f0f('0x1b'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x1e'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x1f'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x20'),this[_0x1f0f('0x1c')]['bind'](this));ami['on'](_0x1f0f('0x21'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on']('custom:agentnoanswer',this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x22'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x23'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x24'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on']('custom:amd',this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x25'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x26'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x27'),this['syncAgentDial'][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x28'),this[_0x1f0f('0x29')][_0x1f0f('0x1d')](this));ami['on']('custom:dialend',this[_0x1f0f('0x29')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x2a'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x2b'),this['syncCustomEvent'][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x2c'),this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x2d'),this['syncCustomEvent'][_0x1f0f('0x1d')](this));ami['on']('custom:outgoingmessage',this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on']('custom:acceptmessage',this['syncCustomEvent']['bind'](this));ami['on']('custom:rejectmessage',this[_0x1f0f('0x1c')][_0x1f0f('0x1d')](this));ami['on'](_0x1f0f('0x2e'),this[_0x1f0f('0x1c')]['bind'](this));}Trigger[_0x1f0f('0x2f')][_0x1f0f('0x30')]=function(_0x3a4786,_0x90730,_0x4a222a){logger[_0x1f0f('0x31')](_0x3a4786,_0x90730,JSON[_0x1f0f('0x32')](_0x4a222a));io['to'](_0x3a4786)[_0x1f0f('0x30')](_0x90730,_0x4a222a);};Trigger[_0x1f0f('0x2f')][_0x1f0f('0x1c')]=function(_0x1d4498){var _0x1ba968=_[_0x1f0f('0x33')](_0x1d4498);if(typeof _0x1ba968[_0x1f0f('0x34')]===_0x1f0f('0x35')){_0x1ba968['motionChannel']=_0x1f0f('0x36');}this[_0x1f0f('0x37')](_0x1ba968);};Trigger['prototype'][_0x1f0f('0x29')]=function(_0x423ef0){if(this['agents'][_0x423ef0['interface']]){this[_0x1f0f('0x1c')](_0x423ef0);}};Trigger[_0x1f0f('0x2f')]['checkTriggers']=function(_0x330386){var _0x14f7a1;for(var _0x3d0fe8 in this[_0x1f0f('0xd')]){if(this['triggers'][_0x1f0f('0x38')](_0x3d0fe8)){if(this[_0x1f0f('0xd')][_0x3d0fe8][_0x1f0f('0x39')]){_0x14f7a1=this[_0x1f0f('0x3a')](this[_0x1f0f('0xd')][_0x3d0fe8],_0x330386);if(_0x14f7a1){_[_0x1f0f('0x3b')](_0x330386,_0x330386['variables']);for(var _0x5ce751=0x0,_0x5d2fc5,_0x1509d3,_0x48efc8;_0x5ce751<this[_0x1f0f('0xd')][_0x3d0fe8][_0x1f0f('0x3c')]['length'];_0x5ce751+=0x1){_0x5d2fc5=this[_0x1f0f('0xd')][_0x3d0fe8]['Actions'][_0x5ce751];if(this[_0x1f0f('0x3d')][_0x330386[_0x1f0f('0x3e')]]){switch(_0x5d2fc5[_0x1f0f('0x3f')][_0x1f0f('0x40')]()){case _0x1f0f('0x41'):break;case _0x1f0f('0x42'):case _0x1f0f('0x43'):var _0x2383ba={};switch(barAndWebActions[_0x5d2fc5[_0x1f0f('0x44')]]){case'popup':_0x2383ba[_0x1f0f('0x45')]=_0x5d2fc5[_0x1f0f('0x46')];_0x2383ba[_0x1f0f('0x47')]=this[_0x1f0f('0xf')][_0x5d2fc5[_0x1f0f('0x46')]]?Mustache['render'](this['templates'][_0x5d2fc5['data2']]['html'],_0x330386):_0x1f0f('0x48');break;case'url':_0x2383ba[_0x1f0f('0x49')]=this[_0x1f0f('0x4a')](_0x5d2fc5[_0x1f0f('0x46')],_0x330386,_['isNil'](_0x5d2fc5[_0x1f0f('0x4b')])?!![]:parseInt(_0x5d2fc5[_0x1f0f('0x4b')],0xa));if(_[_0x1f0f('0x4c')](_0x5d2fc5['data4'])){_0x2383ba[_0x1f0f('0x4d')]='0';}else{_0x2383ba[_0x1f0f('0x4e')]=_0x5d2fc5[_0x1f0f('0x4f')];_0x2383ba['windowWidth']=_[_0x1f0f('0x4c')](_0x5d2fc5[_0x1f0f('0x50')])?_0x1f0f('0x51'):_0x5d2fc5[_0x1f0f('0x50')];_0x2383ba[_0x1f0f('0x52')]=_[_0x1f0f('0x4c')](_0x5d2fc5[_0x1f0f('0x53')])?_0x1f0f('0x54'):_0x5d2fc5[_0x1f0f('0x53')];}break;case _0x1f0f('0x55'):_0x2383ba[_0x1f0f('0x56')]=_0x5d2fc5[_0x1f0f('0x46')]?Mustache[_0x1f0f('0x57')](_0x5d2fc5[_0x1f0f('0x46')],_0x330386):'';_0x2383ba[_0x1f0f('0x58')]=_0x5d2fc5[_0x1f0f('0x4b')]?Mustache['render'](_0x5d2fc5['data3'],_0x330386):'';break;}this[_0x1f0f('0x30')](util[_0x1f0f('0x59')](_0x1f0f('0x5a'),this[_0x1f0f('0x3d')][_0x330386[_0x1f0f('0x3e')]][_0x1f0f('0x5b')]),util[_0x1f0f('0x59')](_0x1f0f('0x5c'),_0x5d2fc5[_0x1f0f('0x3f')][_0x1f0f('0x40')](),barAndWebActions[_0x5d2fc5[_0x1f0f('0x44')]]),_[_0x1f0f('0x3b')](_0x2383ba,_0x330386));break;case _0x1f0f('0x5d'):this[_0x1f0f('0x30')](util[_0x1f0f('0x59')](_0x1f0f('0x5a'),this[_0x1f0f('0x3d')][_0x330386['interface']][_0x1f0f('0x5b')]),util['format']('trigger:%s',_0x5d2fc5['action'][_0x1f0f('0x40')]()),_[_0x1f0f('0x3b')]({'ProjectId':parseInt(_0x5d2fc5[_0x1f0f('0x44')],0xa)},_0x330386));break;default:this[_0x1f0f('0x30')](util[_0x1f0f('0x59')](_0x1f0f('0x5a'),this[_0x1f0f('0x3d')][_0x330386[_0x1f0f('0x3e')]][_0x1f0f('0x5b')]),util['format']('trigger:%s',_0x5d2fc5[_0x1f0f('0x3f')][_0x1f0f('0x40')]()),_[_0x1f0f('0x3b')]({},_0x5d2fc5,_0x330386));}}switch(_0x5d2fc5[_0x1f0f('0x3f')][_0x1f0f('0x40')]()){case'contactmanager':cmContact[_0x1f0f('0x5e')](this[_0x1f0f('0x3d')][_0x330386[_0x1f0f('0x3e')]],this[_0x1f0f('0xd')][_0x3d0fe8],_0x5d2fc5,_0x330386);break;case _0x1f0f('0x5f'):integration[_0x1f0f('0x5e')](_0x5d2fc5,_0x330386,this['accounts'],this[_0x1f0f('0x3d')][_0x330386['interface']],this[_0x1f0f('0xe')][_0x330386['queue']],this[_0x1f0f('0x10')][_0x330386[_0x1f0f('0x60')]]);break;case'urlforward':urlforward[_0x1f0f('0x5e')](_0x5d2fc5,_0x330386);break;case _0x1f0f('0x61'):script[_0x1f0f('0x5e')](_0x5d2fc5,_0x330386);break;}}}}}}};Trigger[_0x1f0f('0x2f')][_0x1f0f('0x4a')]=function(_0x4afb01,_0x4b0e91,_0x10b0f0){var _0x2c916b=url['parse'](Mustache['render'](_0x4afb01,_0x4b0e91),!![]);if(_0x10b0f0){_[_0x1f0f('0x3b')](_0x2c916b['query'],_0x4b0e91);}delete _0x2c916b[_0x1f0f('0x62')];var _0x7b7d60=url[_0x1f0f('0x59')](_0x2c916b);_0x7b7d60=_0x7b7d60['replace'](/\/\?/g,'?');return _0x7b7d60;};Trigger[_0x1f0f('0x2f')]['checkTrigger']=function(_0x4defd3,_0x59f621){var _0x4a1cc4=!![];var _0x47db67=!![];var _0x4746ab=![];if(_0x4defd3['channel']===_0x59f621[_0x1f0f('0x34')]){_0x4746ab=!![];}if(_0x4defd3[_0x1f0f('0x63')][_0x1f0f('0x64')]){_0x4a1cc4=_[_0x1f0f('0x65')](_0x4defd3[_0x1f0f('0x63')],this[_0x1f0f('0x66')](_0x59f621,_0x4defd3[_0x1f0f('0x67')]));}if(_0x4defd3[_0x1f0f('0x68')][_0x1f0f('0x64')]){_0x47db67=_[_0x1f0f('0x69')](_0x4defd3[_0x1f0f('0x68')],this[_0x1f0f('0x66')](_0x59f621,_0x4defd3['channel']));}return _0x4746ab&&_0x4a1cc4&&_0x47db67;};Trigger[_0x1f0f('0x2f')][_0x1f0f('0x66')]=function(_0x5a0592,_0x4db96e){return function(_0x33042a){switch(_0x33042a[_0x1f0f('0x6a')]){case _0x1f0f('0x6b'):if(_0x5a0592['channel']===_0x4db96e){if(_0x4db96e===_0x1f0f('0x6c')){return _0x5a0592[_0x1f0f('0x6d')]?operators[_0x33042a[_0x1f0f('0x6e')]](Number(_0x33042a[_0x1f0f('0x6f')]),_0x5a0592[_0x1f0f('0x6d')]):![];}else{return _0x5a0592[_[_0x1f0f('0x70')](_0x4db96e)+'AccountId']?operators[_0x33042a[_0x1f0f('0x6e')]](Number(_0x33042a[_0x1f0f('0x6f')]),_0x5a0592[_[_0x1f0f('0x70')](_0x4db96e)+_0x1f0f('0x71')]):![];}}break;case'interaction':case _0x1f0f('0x72'):if(_0x5a0592['channel']===_0x4db96e){return _0x5a0592['event']?operators[_0x33042a['operator']](_0x33042a[_0x1f0f('0x6f')],_0x5a0592[_0x1f0f('0x73')]):![];}break;case _0x1f0f('0x74'):return _0x5a0592[_0x1f0f('0x74')]?operators[_0x33042a[_0x1f0f('0x6e')]](_0x33042a[_0x1f0f('0x6f')],_0x5a0592[_0x1f0f('0x74')]):![];case'agent':return _0x5a0592[_0x1f0f('0x75')]?operators[_0x33042a[_0x1f0f('0x6e')]](_0x33042a[_0x1f0f('0x6f')],_0x5a0592[_0x1f0f('0x75')]):![];case _0x1f0f('0x76'):return _0x5a0592[_0x1f0f('0x76')]?operators[_0x33042a['operator']](_0x33042a[_0x1f0f('0x6f')],_0x5a0592[_0x1f0f('0x76')]):![];case _0x1f0f('0x60'):return _0x5a0592[_0x1f0f('0x60')]?operators[_0x33042a[_0x1f0f('0x6e')]](_0x33042a['value'],_0x5a0592['routeId']):![];case _0x1f0f('0x77'):if(_0x33042a[_0x1f0f('0x6f')]===_0x1f0f('0x78'))_0x33042a['value']=null;return typeof _0x5a0592[_0x1f0f('0x79')]!=='undefined'?operators[_0x33042a[_0x1f0f('0x6e')]](_0x33042a['value'],_0x5a0592[_0x1f0f('0x79')]):![];case _0x1f0f('0x7a'):if(_0x5a0592[_0x1f0f('0x67')]===_0x4db96e){return _0x33042a[_0x1f0f('0x6f')]===_0x1f0f('0x7b')&&_0x33042a[_0x1f0f('0x6e')]==='equals'?!![]:![];}break;}return![];};};module[_0x1f0f('0x7c')]=Trigger;