341912224ebbfc65b3dc75799852fe3f1169bcb6
[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 _0x1d84=['vtigerAccounts','servicenowAccounts','freshsalesAccounts','accounts','dynamics365Accounts','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:substatus','custom:acceptmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','inspect','interface','checkTriggers','status','checkTrigger','merge','Actions','action','motionbar','browser','data1','data2','html','templates','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','name','format','trigger:%s:%s','toLowerCase','jscripty','user:%s','trigger:%s','contactmanager','exec','integration','queue','routeId','urlforward','script','parse','query','search','replace','channel','length','every','checkConditions','some','debug','checkTrigger:\x20trigger','evt','field','account','chat','ChatWebsiteId','value','AccountId','operator','upperFirst','interaction','message','event','agent','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','equals','exports','lodash','url','mustache','./urlforward','./integration','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts'];(function(_0x22093a,_0xa7acf1){var _0x2f4989=function(_0x5bf12b){while(--_0x5bf12b){_0x22093a['push'](_0x22093a['shift']());}};_0x2f4989(++_0xa7acf1);}(_0x1d84,0x173));var _0x41d8=function(_0x263a74,_0xc31414){_0x263a74=_0x263a74-0x0;var _0x2aa86c=_0x1d84[_0x263a74];return _0x2aa86c;};'use strict';var util=require('util');var _=require(_0x41d8('0x0'));var url=require(_0x41d8('0x1'));var Mustache=require(_0x41d8('0x2'));var Redis=require('ioredis');var urlforward=require(_0x41d8('0x3'));var integration=require(_0x41d8('0x4'));var cmContact=require('./cmContact');var script=require(_0x41d8('0x5'));var config=require(_0x41d8('0x6'));var logger=require(_0x41d8('0x7'))(_0x41d8('0x8'));var ami=require(_0x41d8('0x9'));config[_0x41d8('0xa')]=_[_0x41d8('0xb')](config[_0x41d8('0xa')],{'host':_0x41d8('0xc'),'port':0x18eb});var io=require(_0x41d8('0xd'))(new Redis(config[_0x41d8('0xa')]));var operators={'equals':function(_0x57b3ca,_0x4d8235){return _0x57b3ca==_0x4d8235;},'not_equals':function(_0x1ae9ad,_0x121cb5){return _0x1ae9ad!=_0x121cb5;}};var barAndWebActions=[_0x41d8('0xe'),_0x41d8('0x1'),'winapp'];function Trigger(_0x265595){this[_0x41d8('0xf')]=_0x265595[_0x41d8('0xf')];this['agents']=_0x265595[_0x41d8('0x10')];this[_0x41d8('0x11')]=_0x265595[_0x41d8('0x11')];this['templates']=_0x265595['templates'];this['voiceExtensions']=_0x265595[_0x41d8('0x12')];this[_0x41d8('0x13')]=_0x265595[_0x41d8('0x13')];this[_0x41d8('0x14')]=_0x265595[_0x41d8('0x14')];this[_0x41d8('0x15')]=_0x265595['salesforceAccounts'];this[_0x41d8('0x16')]=_0x265595[_0x41d8('0x16')];this[_0x41d8('0x17')]=_0x265595['zohoAccounts'];this[_0x41d8('0x18')]=_0x265595[_0x41d8('0x18')];this[_0x41d8('0x19')]=_0x265595[_0x41d8('0x19')];this[_0x41d8('0x1a')]=_0x265595['servicenowAccounts'];this['dynamics365Accounts']=_0x265595['dynamics365Accounts'];this[_0x41d8('0x1b')]=_0x265595[_0x41d8('0x1b')];this[_0x41d8('0x1c')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x41d8('0x15')],'freshdesk':this[_0x41d8('0x14')],'sugarcrm':this[_0x41d8('0x16')],'zoho':this[_0x41d8('0x17')],'desk':this[_0x41d8('0x18')],'vtiger':this[_0x41d8('0x19')],'dynamics365':this[_0x41d8('0x1d')],'freshsales':this[_0x41d8('0x1b')],'servicenow':this['servicenowAccounts']};ami['on']('custom:agentcalled',this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x20'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x21'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x22'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x23'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on']('custom:agentnoanswer',this['syncCustomEvent'][_0x41d8('0x1f')](this));ami['on']('custom:agentbusy',this[_0x41d8('0x1e')]['bind'](this));ami['on'](_0x41d8('0x24'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x25'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x26'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x27'),this[_0x41d8('0x1e')]['bind'](this));ami['on'](_0x41d8('0x28'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x29'),this[_0x41d8('0x2a')][_0x41d8('0x1f')](this));ami['on']('custom:dialconnect',this[_0x41d8('0x2a')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x2b'),this['syncAgentDial'][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x2c'),this['syncCustomEvent'][_0x41d8('0x1f')](this));ami['on']('custom:closedinteraction',this['syncCustomEvent'][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x2d'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on']('custom:incomingmessage',this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on']('custom:outgoingmessage',this[_0x41d8('0x1e')]['bind'](this));ami['on'](_0x41d8('0x2e'),this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on']('custom:rejectmessage',this[_0x41d8('0x1e')][_0x41d8('0x1f')](this));ami['on'](_0x41d8('0x2f'),this['syncCustomEvent']['bind'](this));}Trigger[_0x41d8('0x30')][_0x41d8('0x31')]=function(_0x1fddad,_0x2ec99a,_0x13bd33){logger[_0x41d8('0x32')](_0x1fddad,_0x2ec99a,JSON[_0x41d8('0x33')](_0x13bd33));io['to'](_0x1fddad)['emit'](_0x2ec99a,_0x13bd33);};Trigger[_0x41d8('0x30')]['syncCustomEvent']=function(_0x39aab9){var _0x4326c7=_[_0x41d8('0x34')](_0x39aab9);if(typeof _0x4326c7[_0x41d8('0x35')]===_0x41d8('0x36')){_0x4326c7[_0x41d8('0x35')]=_0x41d8('0x37');}logger['debug']('syncCustomEvent',util[_0x41d8('0x38')](_0x4326c7,{'showHidden':!![],'depth':null}));this['checkTriggers'](_0x4326c7);};Trigger[_0x41d8('0x30')][_0x41d8('0x2a')]=function(_0x416e87){if(this[_0x41d8('0x10')][_0x416e87[_0x41d8('0x39')]]){this[_0x41d8('0x1e')](_0x416e87);}};Trigger[_0x41d8('0x30')][_0x41d8('0x3a')]=function(_0x359d27){var _0x192056;for(var _0x211cc6 in this['triggers']){if(this[_0x41d8('0xf')]['hasOwnProperty'](_0x211cc6)){if(this[_0x41d8('0xf')][_0x211cc6][_0x41d8('0x3b')]){_0x192056=this[_0x41d8('0x3c')](this[_0x41d8('0xf')][_0x211cc6],_0x359d27);if(_0x192056){_[_0x41d8('0x3d')](_0x359d27,_0x359d27['variables']);for(var _0x182506=0x0,_0x4e83dc,_0x239c4a,_0x1b8d76;_0x182506<this[_0x41d8('0xf')][_0x211cc6][_0x41d8('0x3e')]['length'];_0x182506+=0x1){_0x4e83dc=this[_0x41d8('0xf')][_0x211cc6][_0x41d8('0x3e')][_0x182506];if(this[_0x41d8('0x10')][_0x359d27['interface']]){switch(_0x4e83dc[_0x41d8('0x3f')]['toLowerCase']()){case'contactmanager':break;case _0x41d8('0x40'):case _0x41d8('0x41'):var _0x4c048f={};switch(barAndWebActions[_0x4e83dc[_0x41d8('0x42')]]){case _0x41d8('0xe'):_0x4c048f['TemplateId']=_0x4e83dc[_0x41d8('0x43')];_0x4c048f[_0x41d8('0x44')]=this[_0x41d8('0x45')][_0x4e83dc['data2']]?Mustache[_0x41d8('0x46')](this[_0x41d8('0x45')][_0x4e83dc[_0x41d8('0x43')]]['html'],_0x359d27):_0x41d8('0x47');break;case _0x41d8('0x1'):_0x4c048f[_0x41d8('0x48')]=this[_0x41d8('0x49')](_0x4e83dc[_0x41d8('0x43')],_0x359d27,_[_0x41d8('0x4a')](_0x4e83dc[_0x41d8('0x4b')])?!![]:parseInt(_0x4e83dc['data3'],0xa));if(_[_0x41d8('0x4a')](_0x4e83dc[_0x41d8('0x4c')])){_0x4c048f[_0x41d8('0x4d')]='0';}else{_0x4c048f[_0x41d8('0x4e')]=_0x4e83dc[_0x41d8('0x4c')];_0x4c048f[_0x41d8('0x4f')]=_[_0x41d8('0x4a')](_0x4e83dc[_0x41d8('0x50')])?_0x41d8('0x51'):_0x4e83dc['data5'];_0x4c048f[_0x41d8('0x52')]=_['isNil'](_0x4e83dc[_0x41d8('0x53')])?_0x41d8('0x54'):_0x4e83dc[_0x41d8('0x53')];}break;case'winapp':_0x4c048f[_0x41d8('0x55')]=_0x4e83dc[_0x41d8('0x43')]?Mustache[_0x41d8('0x46')](_0x4e83dc[_0x41d8('0x43')],_0x359d27):'';_0x4c048f['winArguments']=_0x4e83dc[_0x41d8('0x4b')]?Mustache[_0x41d8('0x46')](_0x4e83dc['data3'],_0x359d27):'';break;}this[_0x41d8('0x31')](util['format']('user:%s',this[_0x41d8('0x10')][_0x359d27[_0x41d8('0x39')]][_0x41d8('0x56')]),util[_0x41d8('0x57')](_0x41d8('0x58'),_0x4e83dc[_0x41d8('0x3f')][_0x41d8('0x59')](),barAndWebActions[_0x4e83dc['data1']]),_['merge'](_0x4c048f,_0x359d27));break;case _0x41d8('0x5a'):this[_0x41d8('0x31')](util[_0x41d8('0x57')](_0x41d8('0x5b'),this[_0x41d8('0x10')][_0x359d27[_0x41d8('0x39')]][_0x41d8('0x56')]),util[_0x41d8('0x57')](_0x41d8('0x5c'),_0x4e83dc[_0x41d8('0x3f')][_0x41d8('0x59')]()),_['merge']({'ProjectId':parseInt(_0x4e83dc[_0x41d8('0x42')],0xa)},_0x359d27));break;default:this[_0x41d8('0x31')](util[_0x41d8('0x57')](_0x41d8('0x5b'),this[_0x41d8('0x10')][_0x359d27[_0x41d8('0x39')]][_0x41d8('0x56')]),util[_0x41d8('0x57')]('trigger:%s',_0x4e83dc['action'][_0x41d8('0x59')]()),_[_0x41d8('0x3d')]({},_0x4e83dc,_0x359d27));}}switch(_0x4e83dc[_0x41d8('0x3f')][_0x41d8('0x59')]()){case _0x41d8('0x5d'):cmContact[_0x41d8('0x5e')](this[_0x41d8('0x10')][_0x359d27[_0x41d8('0x39')]],this['triggers'][_0x211cc6],_0x4e83dc,_0x359d27);break;case _0x41d8('0x5f'):integration[_0x41d8('0x5e')](_0x4e83dc,_0x359d27,this[_0x41d8('0x1c')],this[_0x41d8('0x10')][_0x359d27[_0x41d8('0x39')]],this['voiceQueues'][_0x359d27[_0x41d8('0x60')]],this[_0x41d8('0x12')][_0x359d27[_0x41d8('0x61')]]);break;case _0x41d8('0x62'):urlforward[_0x41d8('0x5e')](_0x4e83dc,_0x359d27);break;case _0x41d8('0x63'):script[_0x41d8('0x5e')](_0x4e83dc,_0x359d27);break;}}}}}}};Trigger['prototype'][_0x41d8('0x49')]=function(_0x1e38d8,_0x2b90d1,_0x40b4be){var _0xca371e=url[_0x41d8('0x64')](Mustache[_0x41d8('0x46')](_0x1e38d8,_0x2b90d1),!![]);if(_0x40b4be){_['merge'](_0xca371e[_0x41d8('0x65')],_0x2b90d1);}delete _0xca371e[_0x41d8('0x66')];var _0x47a2da=url[_0x41d8('0x57')](_0xca371e);_0x47a2da=_0x47a2da[_0x41d8('0x67')](/\/\?/g,'?');return _0x47a2da;};Trigger['prototype'][_0x41d8('0x3c')]=function(_0x1f4182,_0x1400fa){var _0x374edb=!![];var _0x18f6b0=!![];var _0x4b192e=![];if(_0x1f4182[_0x41d8('0x68')]===_0x1400fa[_0x41d8('0x35')]){_0x4b192e=!![];}if(_0x1f4182['AllConditions'][_0x41d8('0x69')]){_0x374edb=_[_0x41d8('0x6a')](_0x1f4182['AllConditions'],this[_0x41d8('0x6b')](_0x1400fa,_0x1f4182[_0x41d8('0x68')]));}if(_0x1f4182['AnyConditions'][_0x41d8('0x69')]){_0x18f6b0=_[_0x41d8('0x6c')](_0x1f4182['AnyConditions'],this['checkConditions'](_0x1400fa,_0x1f4182[_0x41d8('0x68')]));}var _0x56cbad=_0x4b192e&&_0x374edb&&_0x18f6b0;logger[_0x41d8('0x6d')](_0x41d8('0x6e'),util[_0x41d8('0x38')](_0x1f4182,{'showHidden':!![],'depth':null}),_0x41d8('0x6f'),util['inspect'](_0x1400fa,{'showHidden':!![],'depth':null}),_0x4b192e,_0x374edb,_0x18f6b0);return _0x56cbad;};Trigger['prototype'][_0x41d8('0x6b')]=function(_0xa36ac9,_0x1edfac){return function(_0x39db96){switch(_0x39db96[_0x41d8('0x70')]){case _0x41d8('0x71'):if(_0xa36ac9['channel']===_0x1edfac){if(_0x1edfac===_0x41d8('0x72')){return _0xa36ac9[_0x41d8('0x73')]?operators[_0x39db96['operator']](Number(_0x39db96[_0x41d8('0x74')]),_0xa36ac9[_0x41d8('0x73')]):![];}else{return _0xa36ac9[_['upperFirst'](_0x1edfac)+_0x41d8('0x75')]?operators[_0x39db96[_0x41d8('0x76')]](Number(_0x39db96[_0x41d8('0x74')]),_0xa36ac9[_[_0x41d8('0x77')](_0x1edfac)+_0x41d8('0x75')]):![];}}break;case _0x41d8('0x78'):case _0x41d8('0x79'):if(_0xa36ac9['channel']===_0x1edfac){return _0xa36ac9[_0x41d8('0x7a')]?operators[_0x39db96[_0x41d8('0x76')]](_0x39db96[_0x41d8('0x74')],_0xa36ac9[_0x41d8('0x7a')]):![];}break;case'queue':return _0xa36ac9['queue']?operators[_0x39db96[_0x41d8('0x76')]](_0x39db96[_0x41d8('0x74')],_0xa36ac9[_0x41d8('0x60')]):![];case _0x41d8('0x7b'):return _0xa36ac9[_0x41d8('0x7c')]?operators[_0x39db96['operator']](_0x39db96['value'],_0xa36ac9['membername']):![];case _0x41d8('0x7d'):return _0xa36ac9[_0x41d8('0x7d')]?operators[_0x39db96['operator']](_0x39db96['value'],_0xa36ac9['lastevent']):![];case'routeId':return _0xa36ac9[_0x41d8('0x61')]?operators[_0x39db96[_0x41d8('0x76')]](_0x39db96['value'],_0xa36ac9[_0x41d8('0x61')]):![];case _0x41d8('0x7e'):if(_0x39db96[_0x41d8('0x74')]===_0x41d8('0x7f'))_0x39db96[_0x41d8('0x74')]=null;return typeof _0xa36ac9['substatus']!==_0x41d8('0x36')?operators[_0x39db96[_0x41d8('0x76')]](_0x39db96[_0x41d8('0x74')],_0xa36ac9[_0x41d8('0x80')]):![];case _0x41d8('0x81'):if(_0xa36ac9[_0x41d8('0x68')]===_0x1edfac){return _0x39db96[_0x41d8('0x74')]==='created'&&_0x39db96[_0x41d8('0x76')]===_0x41d8('0x82')?!![]:![];}break;}return![];};};module[_0x41d8('0x83')]=Trigger;