Built motion from commit (unavailable).|2.4.20
[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 _0xb702=['Actions','length','action','toLowerCase','contactmanager','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','800','data5','windowHeight','data6','600','winapp','winApplication','winArguments','format','user:%s','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','replace','AllConditions','every','checkConditions','channel','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','membername','lastevent','exports','util','lodash','url','ioredis','./urlforward','./integration','./cmContact','./script','../rpc/cmContact','../../../config/environment','trigger','../ami','defaults','localhost','socket.io-emitter','popup','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','custom:agentconnect','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','info','stringify','emit','prototype','clone','interface','status','checkTrigger','merge','variables'];(function(_0x3ed8f9,_0x4197c6){var _0x34f95a=function(_0x11e737){while(--_0x11e737){_0x3ed8f9['push'](_0x3ed8f9['shift']());}};_0x34f95a(++_0x4197c6);}(_0xb702,0x183));var _0x2b70=function(_0x562f3b,_0x4c65ae){_0x562f3b=_0x562f3b-0x0;var _0x1edd55=_0xb702[_0x562f3b];return _0x1edd55;};'use strict';var util=require(_0x2b70('0x0'));var _=require(_0x2b70('0x1'));var url=require(_0x2b70('0x2'));var Mustache=require('mustache');var Redis=require(_0x2b70('0x3'));var urlforward=require(_0x2b70('0x4'));var integration=require(_0x2b70('0x5'));var cmContact=require(_0x2b70('0x6'));var script=require(_0x2b70('0x7'));var cmContactRpc=require(_0x2b70('0x8'));var config=require(_0x2b70('0x9'));var logger=require('../../../config/logger')(_0x2b70('0xa'));var ami=require(_0x2b70('0xb'));config['redis']=_[_0x2b70('0xc')](config['redis'],{'host':_0x2b70('0xd'),'port':0x18eb});var io=require(_0x2b70('0xe'))(new Redis(config['redis']));var operators={'equals':function(_0x9758c9,_0x3a9428){return _0x9758c9==_0x3a9428;},'not_equals':function(_0x4fbc00,_0x2507b3){return _0x4fbc00!=_0x2507b3;}};var barAndWebActions=[_0x2b70('0xf'),_0x2b70('0x2'),'winapp'];function Trigger(_0x3798cf){this[_0x2b70('0x10')]=_0x3798cf['triggers'];this[_0x2b70('0x11')]=_0x3798cf[_0x2b70('0x11')];this[_0x2b70('0x12')]=_0x3798cf[_0x2b70('0x12')];this[_0x2b70('0x13')]=_0x3798cf['templates'];this[_0x2b70('0x14')]=_0x3798cf[_0x2b70('0x14')];this[_0x2b70('0x15')]=_0x3798cf[_0x2b70('0x15')];this[_0x2b70('0x16')]=_0x3798cf[_0x2b70('0x16')];this['salesforceAccounts']=_0x3798cf[_0x2b70('0x17')];this[_0x2b70('0x18')]=_0x3798cf[_0x2b70('0x18')];this[_0x2b70('0x19')]=_0x3798cf[_0x2b70('0x19')];this[_0x2b70('0x1a')]=_0x3798cf[_0x2b70('0x1a')];this[_0x2b70('0x1b')]=_0x3798cf['vtigerAccounts'];this[_0x2b70('0x1c')]=_0x3798cf[_0x2b70('0x1c')];this[_0x2b70('0x1d')]=_0x3798cf['dynamics365Accounts'];this[_0x2b70('0x1e')]=_0x3798cf['freshsalesAccounts'];this['accounts']={'zendesk':this[_0x2b70('0x15')],'salesforce':this[_0x2b70('0x17')],'freshdesk':this[_0x2b70('0x16')],'sugarcrm':this[_0x2b70('0x18')],'zoho':this[_0x2b70('0x19')],'desk':this[_0x2b70('0x1a')],'vtiger':this[_0x2b70('0x1b')],'dynamics365':this[_0x2b70('0x1d')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0x2b70('0x1f'),this['syncCustomEvent']['bind'](this));ami['on'](_0x2b70('0x20'),this[_0x2b70('0x21')][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x23'),this['syncCustomEvent']['bind'](this));ami['on'](_0x2b70('0x24'),this[_0x2b70('0x21')][_0x2b70('0x22')](this));ami['on']('custom:queuecallerabandon',this[_0x2b70('0x21')][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x25'),this[_0x2b70('0x26')][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x27'),this[_0x2b70('0x26')][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x28'),this['syncAgentDial'][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x29'),this['syncCustomEvent'][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x2a'),this[_0x2b70('0x21')][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x2b'),this[_0x2b70('0x21')]['bind'](this));ami['on'](_0x2b70('0x2c'),this['syncCustomEvent']['bind'](this));ami['on'](_0x2b70('0x2d'),this['syncCustomEvent'][_0x2b70('0x22')](this));ami['on'](_0x2b70('0x2e'),this[_0x2b70('0x21')]['bind'](this));}Trigger['prototype']['emit']=function(_0x40d672,_0x2812bb,_0x3b726a){logger[_0x2b70('0x2f')](_0x40d672,_0x2812bb,JSON[_0x2b70('0x30')](_0x3b726a));io['to'](_0x40d672)[_0x2b70('0x31')](_0x2812bb,_0x3b726a);};Trigger[_0x2b70('0x32')]['syncCustomEvent']=function(_0x3dda4d){var _0x216099=_[_0x2b70('0x33')](_0x3dda4d);this['checkTriggers'](_0x216099);};Trigger[_0x2b70('0x32')][_0x2b70('0x26')]=function(_0x2ddf2c){if(this[_0x2b70('0x11')][_0x2ddf2c[_0x2b70('0x34')]]){this['syncCustomEvent'](_0x2ddf2c);}};Trigger[_0x2b70('0x32')]['checkTriggers']=function(_0x48cb1a){var _0x346700;for(var _0x2cfdf9 in this['triggers']){if(this['triggers']['hasOwnProperty'](_0x2cfdf9)){if(this['triggers'][_0x2cfdf9][_0x2b70('0x35')]){_0x346700=this[_0x2b70('0x36')](this[_0x2b70('0x10')][_0x2cfdf9],_0x48cb1a);if(_0x346700){_[_0x2b70('0x37')](_0x48cb1a,_0x48cb1a[_0x2b70('0x38')]);for(var _0x49f665=0x0,_0x3aa2e4,_0x12c0ca,_0xf814b1;_0x49f665<this[_0x2b70('0x10')][_0x2cfdf9][_0x2b70('0x39')][_0x2b70('0x3a')];_0x49f665+=0x1){_0x3aa2e4=this['triggers'][_0x2cfdf9][_0x2b70('0x39')][_0x49f665];if(this[_0x2b70('0x11')][_0x48cb1a[_0x2b70('0x34')]]){switch(_0x3aa2e4[_0x2b70('0x3b')][_0x2b70('0x3c')]()){case _0x2b70('0x3d'):break;case'motionbar':case'browser':var _0x2cd606={};switch(barAndWebActions[_0x3aa2e4[_0x2b70('0x3e')]]){case _0x2b70('0xf'):_0x2cd606[_0x2b70('0x3f')]=_0x3aa2e4[_0x2b70('0x40')];_0x2cd606[_0x2b70('0x41')]=this[_0x2b70('0x13')][_0x3aa2e4['data2']]?Mustache[_0x2b70('0x42')](this[_0x2b70('0x13')][_0x3aa2e4[_0x2b70('0x40')]][_0x2b70('0x41')],_0x48cb1a):_0x2b70('0x43');break;case _0x2b70('0x2'):_0x2cd606[_0x2b70('0x44')]=this[_0x2b70('0x45')](_0x3aa2e4[_0x2b70('0x40')],_0x48cb1a,_[_0x2b70('0x46')](_0x3aa2e4[_0x2b70('0x47')])?!![]:parseInt(_0x3aa2e4[_0x2b70('0x47')],0xa));if(_[_0x2b70('0x46')](_0x3aa2e4[_0x2b70('0x48')])){_0x2cd606[_0x2b70('0x49')]='0';}else{_0x2cd606[_0x2b70('0x4a')]=_0x3aa2e4[_0x2b70('0x48')];_0x2cd606['windowWidth']=_[_0x2b70('0x46')](_0x3aa2e4['data5'])?_0x2b70('0x4b'):_0x3aa2e4[_0x2b70('0x4c')];_0x2cd606[_0x2b70('0x4d')]=_['isNil'](_0x3aa2e4[_0x2b70('0x4e')])?_0x2b70('0x4f'):_0x3aa2e4[_0x2b70('0x4e')];}break;case _0x2b70('0x50'):_0x2cd606[_0x2b70('0x51')]=_0x3aa2e4[_0x2b70('0x40')]?Mustache[_0x2b70('0x42')](_0x3aa2e4[_0x2b70('0x40')],_0x48cb1a):'';_0x2cd606[_0x2b70('0x52')]=_0x3aa2e4[_0x2b70('0x47')]?Mustache[_0x2b70('0x42')](_0x3aa2e4[_0x2b70('0x47')],_0x48cb1a):'';break;}this[_0x2b70('0x31')](util[_0x2b70('0x53')](_0x2b70('0x54'),this[_0x2b70('0x11')][_0x48cb1a['interface']][_0x2b70('0x55')]),util[_0x2b70('0x53')]('trigger:%s:%s',_0x3aa2e4[_0x2b70('0x3b')][_0x2b70('0x3c')](),barAndWebActions[_0x3aa2e4[_0x2b70('0x3e')]]),_[_0x2b70('0x37')](_0x2cd606,_0x48cb1a));break;case'jscripty':this[_0x2b70('0x31')](util[_0x2b70('0x53')](_0x2b70('0x54'),this['agents'][_0x48cb1a[_0x2b70('0x34')]][_0x2b70('0x55')]),util[_0x2b70('0x53')]('trigger:%s',_0x3aa2e4[_0x2b70('0x3b')]['toLowerCase']()),_[_0x2b70('0x37')]({'ProjectId':parseInt(_0x3aa2e4[_0x2b70('0x3e')],0xa)},_0x48cb1a));break;default:this['emit'](util[_0x2b70('0x53')](_0x2b70('0x54'),this[_0x2b70('0x11')][_0x48cb1a[_0x2b70('0x34')]][_0x2b70('0x55')]),util['format'](_0x2b70('0x56'),_0x3aa2e4[_0x2b70('0x3b')][_0x2b70('0x3c')]()),_[_0x2b70('0x37')]({},_0x3aa2e4,_0x48cb1a));}}switch(_0x3aa2e4[_0x2b70('0x3b')][_0x2b70('0x3c')]()){case _0x2b70('0x3d'):cmContact[_0x2b70('0x57')](this[_0x2b70('0x11')][_0x48cb1a['interface']],_0x3aa2e4,_0x48cb1a,cmContactRpc);break;case _0x2b70('0x58'):integration['exec'](_0x3aa2e4,_0x48cb1a,this['accounts'],this['agents'][_0x48cb1a[_0x2b70('0x34')]],this['voiceQueues'][_0x48cb1a[_0x2b70('0x59')]],this['voiceExtensions'][_0x48cb1a[_0x2b70('0x5a')]]);break;case _0x2b70('0x5b'):urlforward[_0x2b70('0x57')](_0x3aa2e4,_0x48cb1a);break;case _0x2b70('0x5c'):script['exec'](_0x3aa2e4,_0x48cb1a);break;}}}}}}};Trigger[_0x2b70('0x32')][_0x2b70('0x45')]=function(_0x38e4b3,_0x19d30a,_0x2ba565){var _0x28cc9f=url[_0x2b70('0x5d')](Mustache['render'](_0x38e4b3,_0x19d30a),!![]);if(_0x2ba565){_['merge'](_0x28cc9f['query'],_0x19d30a);}delete _0x28cc9f['search'];var _0x57e80f=url[_0x2b70('0x53')](_0x28cc9f);_0x57e80f=_0x57e80f[_0x2b70('0x5e')](/\/\?/g,'?');return _0x57e80f;};Trigger[_0x2b70('0x32')][_0x2b70('0x36')]=function(_0x3f0415,_0x3d9c0a){var _0x5f1b4b=!![],_0xa5e42=!![];if(_0x3f0415[_0x2b70('0x5f')][_0x2b70('0x3a')]){_0x5f1b4b=_[_0x2b70('0x60')](_0x3f0415[_0x2b70('0x5f')],this[_0x2b70('0x61')](_0x3d9c0a,_0x3f0415[_0x2b70('0x62')]));}if(_0x3f0415['AnyConditions']['length']){_0xa5e42=_['some'](_0x3f0415['AnyConditions'],this[_0x2b70('0x61')](_0x3d9c0a,_0x3f0415[_0x2b70('0x62')]));}return _0x5f1b4b&&_0xa5e42;};Trigger[_0x2b70('0x32')][_0x2b70('0x61')]=function(_0x27fbf8,_0x3bbee0){return function(_0x119bcc){switch(_0x119bcc['field']){case _0x2b70('0x63'):if(_0x27fbf8[_0x2b70('0x62')]===_0x3bbee0){if(_0x3bbee0===_0x2b70('0x64')){return _0x27fbf8[_0x2b70('0x65')]?operators[_0x119bcc[_0x2b70('0x66')]](Number(_0x119bcc[_0x2b70('0x67')]),_0x27fbf8[_0x2b70('0x65')]):![];}else{return _0x27fbf8[_[_0x2b70('0x68')](_0x3bbee0)+_0x2b70('0x69')]?operators[_0x119bcc['operator']](Number(_0x119bcc['value']),_0x27fbf8[_[_0x2b70('0x68')](_0x3bbee0)+'AccountId']):![];}}break;case _0x2b70('0x6a'):case _0x2b70('0x6b'):if(_0x27fbf8[_0x2b70('0x62')]===_0x3bbee0){return _0x27fbf8['event']?operators[_0x119bcc[_0x2b70('0x66')]](_0x119bcc[_0x2b70('0x67')],_0x27fbf8['event']):![];}break;case'queue':return _0x27fbf8[_0x2b70('0x59')]?operators[_0x119bcc[_0x2b70('0x66')]](_0x119bcc[_0x2b70('0x67')],_0x27fbf8[_0x2b70('0x59')]):![];case'agent':return _0x27fbf8[_0x2b70('0x6c')]?operators[_0x119bcc[_0x2b70('0x66')]](_0x119bcc['value'],_0x27fbf8[_0x2b70('0x6c')]):![];case _0x2b70('0x6d'):return _0x27fbf8[_0x2b70('0x6d')]?operators[_0x119bcc['operator']](_0x119bcc[_0x2b70('0x67')],_0x27fbf8[_0x2b70('0x6d')]):![];case _0x2b70('0x5a'):return _0x27fbf8['routeId']?operators[_0x119bcc['operator']](_0x119bcc[_0x2b70('0x67')],_0x27fbf8['routeId']):![];}return![];};};module[_0x2b70('0x6e')]=Trigger;