55970518589793d0dbde80ad50f41a5ea81f4e05
[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 _0xe860=['operator','value','upperFirst','AccountId','message','event','agent','membername','lastevent','exports','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','socket.io-emitter','popup','url','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','info','stringify','prototype','clone','checkTriggers','interface','status','checkTrigger','merge','variables','Actions','length','action','toLowerCase','browser','data1','TemplateId','data2','html','templates','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','data5','800','windowHeight','data6','600','winapp','winApplication','winArguments','emit','format','user:%s','name','trigger:%s:%s','contactmanager','exec','integration','accounts','queue','routeId','urlforward','script','parse','query','search','replace','AllConditions','checkConditions','channel','AnyConditions','some','field','account','chat','ChatWebsiteId'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xe860,0x83));var _0x0e86=function(_0x2f432a,_0x21efbd){_0x2f432a=_0x2f432a-0x0;var _0x9fb239=_0xe860[_0x2f432a];return _0x9fb239;};'use strict';var util=require('util');var _=require('lodash');var url=require('url');var Mustache=require('mustache');var Redis=require(_0x0e86('0x0'));var urlforward=require(_0x0e86('0x1'));var integration=require(_0x0e86('0x2'));var cmContact=require(_0x0e86('0x3'));var script=require('./script');var config=require(_0x0e86('0x4'));var logger=require(_0x0e86('0x5'))(_0x0e86('0x6'));var ami=require(_0x0e86('0x7'));config[_0x0e86('0x8')]=_[_0x0e86('0x9')](config[_0x0e86('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x0e86('0xa'))(new Redis(config['redis']));var operators={'equals':function(_0x2aa866,_0x17a76b){return _0x2aa866==_0x17a76b;},'not_equals':function(_0x25621a,_0x28e456){return _0x25621a!=_0x28e456;}};var barAndWebActions=[_0x0e86('0xb'),_0x0e86('0xc'),'winapp'];function Trigger(_0x53a8d8){this[_0x0e86('0xd')]=_0x53a8d8['triggers'];this[_0x0e86('0xe')]=_0x53a8d8[_0x0e86('0xe')];this[_0x0e86('0xf')]=_0x53a8d8[_0x0e86('0xf')];this['templates']=_0x53a8d8['templates'];this[_0x0e86('0x10')]=_0x53a8d8[_0x0e86('0x10')];this['zendeskAccounts']=_0x53a8d8[_0x0e86('0x11')];this[_0x0e86('0x12')]=_0x53a8d8['freshdeskAccounts'];this['salesforceAccounts']=_0x53a8d8[_0x0e86('0x13')];this[_0x0e86('0x14')]=_0x53a8d8[_0x0e86('0x14')];this[_0x0e86('0x15')]=_0x53a8d8['zohoAccounts'];this[_0x0e86('0x16')]=_0x53a8d8[_0x0e86('0x16')];this['vtigerAccounts']=_0x53a8d8[_0x0e86('0x17')];this[_0x0e86('0x18')]=_0x53a8d8[_0x0e86('0x18')];this[_0x0e86('0x19')]=_0x53a8d8[_0x0e86('0x19')];this['freshsalesAccounts']=_0x53a8d8['freshsalesAccounts'];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x0e86('0x12')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x0e86('0x15')],'desk':this[_0x0e86('0x16')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x0e86('0x19')],'freshsales':this[_0x0e86('0x1a')],'servicenow':this[_0x0e86('0x18')]};ami['on'](_0x0e86('0x1b'),this[_0x0e86('0x1c')]['bind'](this));ami['on'](_0x0e86('0x1d'),this['syncCustomEvent'][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x1f'),this['syncCustomEvent'][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x20'),this['syncCustomEvent']['bind'](this));ami['on'](_0x0e86('0x21'),this[_0x0e86('0x1c')]['bind'](this));ami['on']('custom:agentnoanswer',this['syncCustomEvent']['bind'](this));ami['on'](_0x0e86('0x22'),this['syncCustomEvent'][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x23'),this['syncCustomEvent'][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x24'),this['syncCustomEvent'][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x25'),this['syncCustomEvent'][_0x0e86('0x1e')](this));ami['on']('custom:queuecallerabandon',this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x26'),this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x27'),this[_0x0e86('0x28')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x29'),this['syncAgentDial']['bind'](this));ami['on'](_0x0e86('0x2a'),this[_0x0e86('0x28')]['bind'](this));ami['on'](_0x0e86('0x2b'),this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x2c'),this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on']('custom:incomingmessage',this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x2d'),this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x2e'),this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));ami['on'](_0x0e86('0x2f'),this[_0x0e86('0x1c')][_0x0e86('0x1e')](this));}Trigger['prototype']['emit']=function(_0x2204ce,_0x9d1a0b,_0x311e4d){logger[_0x0e86('0x30')](_0x2204ce,_0x9d1a0b,JSON[_0x0e86('0x31')](_0x311e4d));io['to'](_0x2204ce)['emit'](_0x9d1a0b,_0x311e4d);};Trigger[_0x0e86('0x32')]['syncCustomEvent']=function(_0x498155){var _0x418049=_[_0x0e86('0x33')](_0x498155);this[_0x0e86('0x34')](_0x418049);};Trigger[_0x0e86('0x32')][_0x0e86('0x28')]=function(_0x4916bb){if(this[_0x0e86('0xe')][_0x4916bb[_0x0e86('0x35')]]){this[_0x0e86('0x1c')](_0x4916bb);}};Trigger[_0x0e86('0x32')]['checkTriggers']=function(_0xe25f0b){var _0x5c1d07;for(var _0x4093ed in this['triggers']){if(this[_0x0e86('0xd')]['hasOwnProperty'](_0x4093ed)){if(this['triggers'][_0x4093ed][_0x0e86('0x36')]){_0x5c1d07=this[_0x0e86('0x37')](this[_0x0e86('0xd')][_0x4093ed],_0xe25f0b);if(_0x5c1d07){_[_0x0e86('0x38')](_0xe25f0b,_0xe25f0b[_0x0e86('0x39')]);for(var _0xbb6167=0x0,_0x4a8072,_0x5d9faf,_0x310f4d;_0xbb6167<this[_0x0e86('0xd')][_0x4093ed][_0x0e86('0x3a')][_0x0e86('0x3b')];_0xbb6167+=0x1){_0x4a8072=this[_0x0e86('0xd')][_0x4093ed][_0x0e86('0x3a')][_0xbb6167];if(this[_0x0e86('0xe')][_0xe25f0b[_0x0e86('0x35')]]){switch(_0x4a8072[_0x0e86('0x3c')][_0x0e86('0x3d')]()){case'contactmanager':break;case'motionbar':case _0x0e86('0x3e'):var _0x5f3e8b={};switch(barAndWebActions[_0x4a8072[_0x0e86('0x3f')]]){case _0x0e86('0xb'):_0x5f3e8b[_0x0e86('0x40')]=_0x4a8072[_0x0e86('0x41')];_0x5f3e8b[_0x0e86('0x42')]=this[_0x0e86('0x43')][_0x4a8072[_0x0e86('0x41')]]?Mustache[_0x0e86('0x44')](this[_0x0e86('0x43')][_0x4a8072[_0x0e86('0x41')]]['html'],_0xe25f0b):_0x0e86('0x45');break;case _0x0e86('0xc'):_0x5f3e8b[_0x0e86('0x46')]=this[_0x0e86('0x47')](_0x4a8072['data2'],_0xe25f0b,_[_0x0e86('0x48')](_0x4a8072[_0x0e86('0x49')])?!![]:parseInt(_0x4a8072['data3'],0xa));if(_[_0x0e86('0x48')](_0x4a8072[_0x0e86('0x4a')])){_0x5f3e8b[_0x0e86('0x4b')]='0';}else{_0x5f3e8b['uriLocation']=_0x4a8072[_0x0e86('0x4a')];_0x5f3e8b[_0x0e86('0x4c')]=_[_0x0e86('0x48')](_0x4a8072[_0x0e86('0x4d')])?_0x0e86('0x4e'):_0x4a8072[_0x0e86('0x4d')];_0x5f3e8b[_0x0e86('0x4f')]=_[_0x0e86('0x48')](_0x4a8072[_0x0e86('0x50')])?_0x0e86('0x51'):_0x4a8072['data6'];}break;case _0x0e86('0x52'):_0x5f3e8b[_0x0e86('0x53')]=_0x4a8072['data2']?Mustache[_0x0e86('0x44')](_0x4a8072['data2'],_0xe25f0b):'';_0x5f3e8b[_0x0e86('0x54')]=_0x4a8072[_0x0e86('0x49')]?Mustache['render'](_0x4a8072[_0x0e86('0x49')],_0xe25f0b):'';break;}this[_0x0e86('0x55')](util[_0x0e86('0x56')](_0x0e86('0x57'),this[_0x0e86('0xe')][_0xe25f0b[_0x0e86('0x35')]][_0x0e86('0x58')]),util[_0x0e86('0x56')](_0x0e86('0x59'),_0x4a8072['action'][_0x0e86('0x3d')](),barAndWebActions[_0x4a8072['data1']]),_[_0x0e86('0x38')](_0x5f3e8b,_0xe25f0b));break;case'jscripty':this[_0x0e86('0x55')](util[_0x0e86('0x56')](_0x0e86('0x57'),this[_0x0e86('0xe')][_0xe25f0b[_0x0e86('0x35')]][_0x0e86('0x58')]),util[_0x0e86('0x56')]('trigger:%s',_0x4a8072['action'][_0x0e86('0x3d')]()),_[_0x0e86('0x38')]({'ProjectId':parseInt(_0x4a8072[_0x0e86('0x3f')],0xa)},_0xe25f0b));break;default:this[_0x0e86('0x55')](util[_0x0e86('0x56')]('user:%s',this[_0x0e86('0xe')][_0xe25f0b[_0x0e86('0x35')]]['name']),util[_0x0e86('0x56')]('trigger:%s',_0x4a8072[_0x0e86('0x3c')][_0x0e86('0x3d')]()),_[_0x0e86('0x38')]({},_0x4a8072,_0xe25f0b));}}switch(_0x4a8072[_0x0e86('0x3c')][_0x0e86('0x3d')]()){case _0x0e86('0x5a'):cmContact[_0x0e86('0x5b')](this[_0x0e86('0xe')][_0xe25f0b[_0x0e86('0x35')]],this[_0x0e86('0xd')][_0x4093ed],_0x4a8072,_0xe25f0b);break;case _0x0e86('0x5c'):integration[_0x0e86('0x5b')](_0x4a8072,_0xe25f0b,this[_0x0e86('0x5d')],this[_0x0e86('0xe')][_0xe25f0b[_0x0e86('0x35')]],this[_0x0e86('0xf')][_0xe25f0b[_0x0e86('0x5e')]],this[_0x0e86('0x10')][_0xe25f0b[_0x0e86('0x5f')]]);break;case _0x0e86('0x60'):urlforward['exec'](_0x4a8072,_0xe25f0b);break;case _0x0e86('0x61'):script[_0x0e86('0x5b')](_0x4a8072,_0xe25f0b);break;}}}}}}};Trigger['prototype'][_0x0e86('0x47')]=function(_0xecc037,_0x567c60,_0xed3cf4){var _0x549f06=url[_0x0e86('0x62')](Mustache[_0x0e86('0x44')](_0xecc037,_0x567c60),!![]);if(_0xed3cf4){_[_0x0e86('0x38')](_0x549f06[_0x0e86('0x63')],_0x567c60);}delete _0x549f06[_0x0e86('0x64')];var _0x46d4d5=url['format'](_0x549f06);_0x46d4d5=_0x46d4d5[_0x0e86('0x65')](/\/\?/g,'?');return _0x46d4d5;};Trigger[_0x0e86('0x32')][_0x0e86('0x37')]=function(_0x2144ad,_0x12e4ae){var _0x4604a7=!![],_0x1baaba=!![];if(_0x2144ad[_0x0e86('0x66')][_0x0e86('0x3b')]){_0x4604a7=_['every'](_0x2144ad[_0x0e86('0x66')],this[_0x0e86('0x67')](_0x12e4ae,_0x2144ad[_0x0e86('0x68')]));}if(_0x2144ad[_0x0e86('0x69')][_0x0e86('0x3b')]){_0x1baaba=_[_0x0e86('0x6a')](_0x2144ad[_0x0e86('0x69')],this[_0x0e86('0x67')](_0x12e4ae,_0x2144ad[_0x0e86('0x68')]));}return _0x4604a7&&_0x1baaba;};Trigger[_0x0e86('0x32')][_0x0e86('0x67')]=function(_0x591ac3,_0x10fc96){return function(_0x30d92c){switch(_0x30d92c[_0x0e86('0x6b')]){case _0x0e86('0x6c'):if(_0x591ac3['channel']===_0x10fc96){if(_0x10fc96===_0x0e86('0x6d')){return _0x591ac3[_0x0e86('0x6e')]?operators[_0x30d92c[_0x0e86('0x6f')]](Number(_0x30d92c[_0x0e86('0x70')]),_0x591ac3[_0x0e86('0x6e')]):![];}else{return _0x591ac3[_[_0x0e86('0x71')](_0x10fc96)+_0x0e86('0x72')]?operators[_0x30d92c['operator']](Number(_0x30d92c[_0x0e86('0x70')]),_0x591ac3[_['upperFirst'](_0x10fc96)+_0x0e86('0x72')]):![];}}break;case'interaction':case _0x0e86('0x73'):if(_0x591ac3[_0x0e86('0x68')]===_0x10fc96){return _0x591ac3[_0x0e86('0x74')]?operators[_0x30d92c[_0x0e86('0x6f')]](_0x30d92c[_0x0e86('0x70')],_0x591ac3[_0x0e86('0x74')]):![];}break;case _0x0e86('0x5e'):return _0x591ac3[_0x0e86('0x5e')]?operators[_0x30d92c['operator']](_0x30d92c[_0x0e86('0x70')],_0x591ac3[_0x0e86('0x5e')]):![];case _0x0e86('0x75'):return _0x591ac3[_0x0e86('0x76')]?operators[_0x30d92c[_0x0e86('0x6f')]](_0x30d92c[_0x0e86('0x70')],_0x591ac3['membername']):![];case _0x0e86('0x77'):return _0x591ac3['lastevent']?operators[_0x30d92c[_0x0e86('0x6f')]](_0x30d92c[_0x0e86('0x70')],_0x591ac3['lastevent']):![];case _0x0e86('0x5f'):return _0x591ac3['routeId']?operators[_0x30d92c[_0x0e86('0x6f')]](_0x30d92c[_0x0e86('0x70')],_0x591ac3[_0x0e86('0x5f')]):![];}return![];};};module[_0x0e86('0x78')]=Trigger;