a2bcd1d2a4d6497ca8cd864ec0fa6e172a4cc704
[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 _0xd61b=['data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments','user:%s','name','format','trigger:%s:%s','jscripty','trigger:%s','exec','integration','accounts','queue','voiceExtensions','routeId','urlforward','script','buildUri','parse','query','search','replace','every','AllConditions','checkConditions','AnyConditions','channel','checkTrigger:\x20trigger','field','chat','ChatWebsiteId','operator','value','AccountId','upperFirst','interaction','message','event','agent','membername','lastevent','substatus','offlineMessage','created','equals','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','popup','url','winapp','triggers','agents','voiceQueues','templates','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','info','stringify','emit','undefined','motionChannel','debug','inspect','checkTriggers','hasOwnProperty','checkTrigger','merge','variables','length','Actions','interface','action','toLowerCase','contactmanager','motionbar','data1','TemplateId','html','data2','render','template\x20not\x20found','isNil','data3'];(function(_0x288f5e,_0x205edd){var _0x476cc9=function(_0x796f53){while(--_0x796f53){_0x288f5e['push'](_0x288f5e['shift']());}};_0x476cc9(++_0x205edd);}(_0xd61b,0xbd));var _0xbd61=function(_0x39caaa,_0x1f37bc){_0x39caaa=_0x39caaa-0x0;var _0x9b9c7d=_0xd61b[_0x39caaa];return _0x9b9c7d;};'use strict';var util=require(_0xbd61('0x0'));var _=require(_0xbd61('0x1'));var url=require('url');var Mustache=require(_0xbd61('0x2'));var Redis=require(_0xbd61('0x3'));var urlforward=require(_0xbd61('0x4'));var integration=require(_0xbd61('0x5'));var cmContact=require(_0xbd61('0x6'));var script=require(_0xbd61('0x7'));var config=require(_0xbd61('0x8'));var logger=require(_0xbd61('0x9'))(_0xbd61('0xa'));var ami=require(_0xbd61('0xb'));config[_0xbd61('0xc')]=_['defaults'](config[_0xbd61('0xc')],{'host':_0xbd61('0xd'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xbd61('0xc')]));var operators={'equals':function(_0x59becb,_0x21b8a9){return _0x59becb==_0x21b8a9;},'not_equals':function(_0xa9e53c,_0x52aaa1){return _0xa9e53c!=_0x52aaa1;}};var barAndWebActions=[_0xbd61('0xe'),_0xbd61('0xf'),_0xbd61('0x10')];function Trigger(_0x1a4256){this[_0xbd61('0x11')]=_0x1a4256[_0xbd61('0x11')];this[_0xbd61('0x12')]=_0x1a4256[_0xbd61('0x12')];this[_0xbd61('0x13')]=_0x1a4256[_0xbd61('0x13')];this[_0xbd61('0x14')]=_0x1a4256['templates'];this['voiceExtensions']=_0x1a4256['voiceExtensions'];this[_0xbd61('0x15')]=_0x1a4256[_0xbd61('0x15')];this['freshdeskAccounts']=_0x1a4256[_0xbd61('0x16')];this[_0xbd61('0x17')]=_0x1a4256[_0xbd61('0x17')];this['sugarcrmAccounts']=_0x1a4256[_0xbd61('0x18')];this[_0xbd61('0x19')]=_0x1a4256[_0xbd61('0x19')];this[_0xbd61('0x1a')]=_0x1a4256[_0xbd61('0x1a')];this['vtigerAccounts']=_0x1a4256['vtigerAccounts'];this[_0xbd61('0x1b')]=_0x1a4256[_0xbd61('0x1b')];this[_0xbd61('0x1c')]=_0x1a4256['dynamics365Accounts'];this[_0xbd61('0x1d')]=_0x1a4256[_0xbd61('0x1d')];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xbd61('0x17')],'freshdesk':this[_0xbd61('0x16')],'sugarcrm':this[_0xbd61('0x18')],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0xbd61('0x1e')],'dynamics365':this[_0xbd61('0x1c')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xbd61('0x1b')]};ami['on'](_0xbd61('0x1f'),this[_0xbd61('0x20')]['bind'](this));ami['on'](_0xbd61('0x21'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on']('custom:agentringnoanswer',this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x23'),this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x24'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x25'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x26'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x27'),this[_0xbd61('0x20')]['bind'](this));ami['on'](_0xbd61('0x28'),this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x29'),this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x2a'),this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x2b'),this['syncCustomEvent']['bind'](this));ami['on']('custom:dialbegin',this[_0xbd61('0x2c')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x2d'),this[_0xbd61('0x2c')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x2e'),this[_0xbd61('0x2c')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x2f'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x30'),this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x31'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x32'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x33'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x34'),this['syncCustomEvent'][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x35'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));ami['on'](_0xbd61('0x36'),this[_0xbd61('0x20')][_0xbd61('0x22')](this));}Trigger[_0xbd61('0x37')]['emit']=function(_0x1c4ceb,_0x416c81,_0x4c46e8){logger[_0xbd61('0x38')](_0x1c4ceb,_0x416c81,JSON[_0xbd61('0x39')](_0x4c46e8));io['to'](_0x1c4ceb)[_0xbd61('0x3a')](_0x416c81,_0x4c46e8);};Trigger[_0xbd61('0x37')][_0xbd61('0x20')]=function(_0x4f59c1){var _0x5a57c9=_['clone'](_0x4f59c1);if(typeof _0x5a57c9['motionChannel']===_0xbd61('0x3b')){_0x5a57c9[_0xbd61('0x3c')]='voice';}logger[_0xbd61('0x3d')](_0xbd61('0x20'),util[_0xbd61('0x3e')](_0x5a57c9,{'showHidden':!![],'depth':null}));this['checkTriggers'](_0x5a57c9);};Trigger['prototype'][_0xbd61('0x2c')]=function(_0x1c316f){if(this['agents'][_0x1c316f['interface']]){this[_0xbd61('0x20')](_0x1c316f);}};Trigger[_0xbd61('0x37')][_0xbd61('0x3f')]=function(_0x374737){var _0x195531;for(var _0x28cc58 in this[_0xbd61('0x11')]){if(this[_0xbd61('0x11')][_0xbd61('0x40')](_0x28cc58)){if(this[_0xbd61('0x11')][_0x28cc58]['status']){_0x195531=this[_0xbd61('0x41')](this['triggers'][_0x28cc58],_0x374737);if(_0x195531){_[_0xbd61('0x42')](_0x374737,_0x374737[_0xbd61('0x43')]);for(var _0x4f0f51=0x0,_0xc9591c,_0x59be76,_0x217235;_0x4f0f51<this[_0xbd61('0x11')][_0x28cc58]['Actions'][_0xbd61('0x44')];_0x4f0f51+=0x1){_0xc9591c=this[_0xbd61('0x11')][_0x28cc58][_0xbd61('0x45')][_0x4f0f51];if(this[_0xbd61('0x12')][_0x374737[_0xbd61('0x46')]]){switch(_0xc9591c[_0xbd61('0x47')][_0xbd61('0x48')]()){case _0xbd61('0x49'):break;case _0xbd61('0x4a'):case'browser':var _0xe01713={};switch(barAndWebActions[_0xc9591c[_0xbd61('0x4b')]]){case _0xbd61('0xe'):_0xe01713[_0xbd61('0x4c')]=_0xc9591c['data2'];_0xe01713[_0xbd61('0x4d')]=this['templates'][_0xc9591c[_0xbd61('0x4e')]]?Mustache[_0xbd61('0x4f')](this[_0xbd61('0x14')][_0xc9591c[_0xbd61('0x4e')]][_0xbd61('0x4d')],_0x374737):_0xbd61('0x50');break;case _0xbd61('0xf'):_0xe01713['uri']=this['buildUri'](_0xc9591c['data2'],_0x374737,_[_0xbd61('0x51')](_0xc9591c[_0xbd61('0x52')])?!![]:parseInt(_0xc9591c['data3'],0xa));if(_['isNil'](_0xc9591c[_0xbd61('0x53')])){_0xe01713[_0xbd61('0x54')]='0';}else{_0xe01713[_0xbd61('0x55')]=_0xc9591c[_0xbd61('0x53')];_0xe01713[_0xbd61('0x56')]=_[_0xbd61('0x51')](_0xc9591c[_0xbd61('0x57')])?_0xbd61('0x58'):_0xc9591c[_0xbd61('0x57')];_0xe01713[_0xbd61('0x59')]=_['isNil'](_0xc9591c[_0xbd61('0x5a')])?_0xbd61('0x5b'):_0xc9591c[_0xbd61('0x5a')];}break;case _0xbd61('0x10'):_0xe01713[_0xbd61('0x5c')]=_0xc9591c[_0xbd61('0x4e')]?Mustache[_0xbd61('0x4f')](_0xc9591c[_0xbd61('0x4e')],_0x374737):'';_0xe01713[_0xbd61('0x5d')]=_0xc9591c[_0xbd61('0x52')]?Mustache[_0xbd61('0x4f')](_0xc9591c[_0xbd61('0x52')],_0x374737):'';break;}this[_0xbd61('0x3a')](util['format'](_0xbd61('0x5e'),this[_0xbd61('0x12')][_0x374737[_0xbd61('0x46')]][_0xbd61('0x5f')]),util[_0xbd61('0x60')](_0xbd61('0x61'),_0xc9591c[_0xbd61('0x47')][_0xbd61('0x48')](),barAndWebActions[_0xc9591c[_0xbd61('0x4b')]]),_[_0xbd61('0x42')](_0xe01713,_0x374737));break;case _0xbd61('0x62'):this['emit'](util[_0xbd61('0x60')](_0xbd61('0x5e'),this[_0xbd61('0x12')][_0x374737[_0xbd61('0x46')]][_0xbd61('0x5f')]),util[_0xbd61('0x60')]('trigger:%s',_0xc9591c['action'][_0xbd61('0x48')]()),_[_0xbd61('0x42')]({'ProjectId':parseInt(_0xc9591c[_0xbd61('0x4b')],0xa)},_0x374737));break;default:this[_0xbd61('0x3a')](util['format'](_0xbd61('0x5e'),this[_0xbd61('0x12')][_0x374737['interface']][_0xbd61('0x5f')]),util[_0xbd61('0x60')](_0xbd61('0x63'),_0xc9591c[_0xbd61('0x47')]['toLowerCase']()),_[_0xbd61('0x42')]({},_0xc9591c,_0x374737));}}switch(_0xc9591c[_0xbd61('0x47')]['toLowerCase']()){case _0xbd61('0x49'):cmContact[_0xbd61('0x64')](this[_0xbd61('0x12')][_0x374737[_0xbd61('0x46')]],this['triggers'][_0x28cc58],_0xc9591c,_0x374737);break;case _0xbd61('0x65'):integration[_0xbd61('0x64')](_0xc9591c,_0x374737,this[_0xbd61('0x66')],this[_0xbd61('0x12')][_0x374737['interface']],this['voiceQueues'][_0x374737[_0xbd61('0x67')]],this[_0xbd61('0x68')][_0x374737[_0xbd61('0x69')]]);break;case _0xbd61('0x6a'):urlforward[_0xbd61('0x64')](_0xc9591c,_0x374737);break;case _0xbd61('0x6b'):script[_0xbd61('0x64')](_0xc9591c,_0x374737);break;}}}}}}};Trigger[_0xbd61('0x37')][_0xbd61('0x6c')]=function(_0x593624,_0xf686e9,_0x4d63f0){var _0x311c90=url[_0xbd61('0x6d')](Mustache[_0xbd61('0x4f')](_0x593624,_0xf686e9),!![]);if(_0x4d63f0){_[_0xbd61('0x42')](_0x311c90[_0xbd61('0x6e')],_0xf686e9);}delete _0x311c90[_0xbd61('0x6f')];var _0x4b2194=url[_0xbd61('0x60')](_0x311c90);_0x4b2194=_0x4b2194[_0xbd61('0x70')](/\/\?/g,'?');return _0x4b2194;};Trigger[_0xbd61('0x37')][_0xbd61('0x41')]=function(_0x57aa88,_0x117743){var _0x380a28=!![];var _0x217d9b=!![];var _0x45400d=![];if(_0x57aa88['channel']===_0x117743[_0xbd61('0x3c')]){_0x45400d=!![];}if(_0x57aa88['AllConditions'][_0xbd61('0x44')]){_0x380a28=_[_0xbd61('0x71')](_0x57aa88[_0xbd61('0x72')],this[_0xbd61('0x73')](_0x117743,_0x57aa88['channel']));}if(_0x57aa88[_0xbd61('0x74')][_0xbd61('0x44')]){_0x217d9b=_['some'](_0x57aa88[_0xbd61('0x74')],this['checkConditions'](_0x117743,_0x57aa88[_0xbd61('0x75')]));}var _0x244066=_0x45400d&&_0x380a28&&_0x217d9b;logger['debug'](_0xbd61('0x76'),util[_0xbd61('0x3e')](_0x57aa88,{'showHidden':!![],'depth':null}),'evt',util[_0xbd61('0x3e')](_0x117743,{'showHidden':!![],'depth':null}),_0x45400d,_0x380a28,_0x217d9b);return _0x244066;};Trigger[_0xbd61('0x37')][_0xbd61('0x73')]=function(_0x39c80f,_0x3ec38f){return function(_0xe33d9c){switch(_0xe33d9c[_0xbd61('0x77')]){case'account':if(_0x39c80f[_0xbd61('0x75')]===_0x3ec38f){if(_0x3ec38f===_0xbd61('0x78')){return _0x39c80f[_0xbd61('0x79')]?operators[_0xe33d9c[_0xbd61('0x7a')]](Number(_0xe33d9c[_0xbd61('0x7b')]),_0x39c80f[_0xbd61('0x79')]):![];}else{return _0x39c80f[_['upperFirst'](_0x3ec38f)+_0xbd61('0x7c')]?operators[_0xe33d9c['operator']](Number(_0xe33d9c[_0xbd61('0x7b')]),_0x39c80f[_[_0xbd61('0x7d')](_0x3ec38f)+_0xbd61('0x7c')]):![];}}break;case _0xbd61('0x7e'):case _0xbd61('0x7f'):if(_0x39c80f[_0xbd61('0x75')]===_0x3ec38f){return _0x39c80f[_0xbd61('0x80')]?operators[_0xe33d9c[_0xbd61('0x7a')]](_0xe33d9c['value'],_0x39c80f[_0xbd61('0x80')]):![];}break;case _0xbd61('0x67'):return _0x39c80f[_0xbd61('0x67')]?operators[_0xe33d9c[_0xbd61('0x7a')]](_0xe33d9c[_0xbd61('0x7b')],_0x39c80f[_0xbd61('0x67')]):![];case _0xbd61('0x81'):return _0x39c80f[_0xbd61('0x82')]?operators[_0xe33d9c[_0xbd61('0x7a')]](_0xe33d9c[_0xbd61('0x7b')],_0x39c80f[_0xbd61('0x82')]):![];case _0xbd61('0x83'):return _0x39c80f[_0xbd61('0x83')]?operators[_0xe33d9c[_0xbd61('0x7a')]](_0xe33d9c[_0xbd61('0x7b')],_0x39c80f[_0xbd61('0x83')]):![];case _0xbd61('0x69'):return _0x39c80f[_0xbd61('0x69')]?operators[_0xe33d9c[_0xbd61('0x7a')]](_0xe33d9c['value'],_0x39c80f[_0xbd61('0x69')]):![];case'mailSubstatus':if(_0xe33d9c[_0xbd61('0x7b')]==='null')_0xe33d9c[_0xbd61('0x7b')]=null;return typeof _0x39c80f[_0xbd61('0x84')]!==_0xbd61('0x3b')?operators[_0xe33d9c['operator']](_0xe33d9c[_0xbd61('0x7b')],_0x39c80f[_0xbd61('0x84')]):![];case _0xbd61('0x85'):if(_0x39c80f['channel']===_0x3ec38f){return _0xe33d9c[_0xbd61('0x7b')]===_0xbd61('0x86')&&_0xe33d9c[_0xbd61('0x7a')]===_0xbd61('0x87')?!![]:![];}break;}return![];};};module['exports']=Trigger;