072842512232bb904d8005b05f709b30f5e07ba1
[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 _0xc2c7=['Actions','length','action','toLowerCase','contactmanager','browser','TemplateId','data2','html','template\x20not\x20found','buildUri','data3','data4','location','uriLocation','windowWidth','isNil','data5','800','data6','600','render','winArguments','format','user:%s','trigger:%s:%s','jscripty','name','data1','exec','queue','urlforward','parse','query','search','channel','AllConditions','checkConditions','AnyConditions','field','account','chat','ChatWebsiteId','operator','upperFirst','AccountId','interaction','message','event','value','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','offlineMessage','equals','exports','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','trigger','../ami','redis','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','freshdeskAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','motionChannel','undefined','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables'];(function(_0x5206a7,_0x3c7975){var _0x4cd7ee=function(_0x4ce1a5){while(--_0x4ce1a5){_0x5206a7['push'](_0x5206a7['shift']());}};_0x4cd7ee(++_0x3c7975);}(_0xc2c7,0x134));var _0x7c2c=function(_0x3b2d4f,_0x3bb2c7){_0x3b2d4f=_0x3b2d4f-0x0;var _0x52daa4=_0xc2c7[_0x3b2d4f];return _0x52daa4;};'use strict';var util=require('util');var _=require(_0x7c2c('0x0'));var url=require(_0x7c2c('0x1'));var Mustache=require(_0x7c2c('0x2'));var Redis=require(_0x7c2c('0x3'));var urlforward=require(_0x7c2c('0x4'));var integration=require(_0x7c2c('0x5'));var cmContact=require(_0x7c2c('0x6'));var script=require(_0x7c2c('0x7'));var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0x7c2c('0x8'));var ami=require(_0x7c2c('0x9'));config[_0x7c2c('0xa')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x7c2c('0xb'))(new Redis(config[_0x7c2c('0xa')]));var operators={'equals':function(_0x3e668f,_0x3b780b){return _0x3e668f==_0x3b780b;},'not_equals':function(_0x279cff,_0x57b107){return _0x279cff!=_0x57b107;}};var barAndWebActions=[_0x7c2c('0xc'),_0x7c2c('0x1'),_0x7c2c('0xd')];function Trigger(_0x1bfeaf){this[_0x7c2c('0xe')]=_0x1bfeaf[_0x7c2c('0xe')];this[_0x7c2c('0xf')]=_0x1bfeaf[_0x7c2c('0xf')];this[_0x7c2c('0x10')]=_0x1bfeaf[_0x7c2c('0x10')];this[_0x7c2c('0x11')]=_0x1bfeaf[_0x7c2c('0x11')];this[_0x7c2c('0x12')]=_0x1bfeaf[_0x7c2c('0x12')];this[_0x7c2c('0x13')]=_0x1bfeaf[_0x7c2c('0x13')];this['freshdeskAccounts']=_0x1bfeaf['freshdeskAccounts'];this[_0x7c2c('0x14')]=_0x1bfeaf[_0x7c2c('0x14')];this[_0x7c2c('0x15')]=_0x1bfeaf['sugarcrmAccounts'];this[_0x7c2c('0x16')]=_0x1bfeaf[_0x7c2c('0x16')];this['deskAccounts']=_0x1bfeaf[_0x7c2c('0x17')];this['vtigerAccounts']=_0x1bfeaf[_0x7c2c('0x18')];this['servicenowAccounts']=_0x1bfeaf[_0x7c2c('0x19')];this[_0x7c2c('0x1a')]=_0x1bfeaf[_0x7c2c('0x1a')];this[_0x7c2c('0x1b')]=_0x1bfeaf[_0x7c2c('0x1b')];this[_0x7c2c('0x1c')]={'zendesk':this[_0x7c2c('0x13')],'salesforce':this[_0x7c2c('0x14')],'freshdesk':this[_0x7c2c('0x1d')],'sugarcrm':this[_0x7c2c('0x15')],'zoho':this[_0x7c2c('0x16')],'desk':this[_0x7c2c('0x17')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x7c2c('0x1a')],'freshsales':this['freshsalesAccounts'],'servicenow':this['servicenowAccounts']};ami['on'](_0x7c2c('0x1e'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x21'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x22'),this['syncCustomEvent'][_0x7c2c('0x20')](this));ami['on']('custom:agentcomplete',this[_0x7c2c('0x1f')]['bind'](this));ami['on'](_0x7c2c('0x23'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on']('custom:agentnoanswer',this['syncCustomEvent'][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x24'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x25'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on']('custom:agentreject',this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x26'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x27'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x28'),this['syncCustomEvent'][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x29'),this[_0x7c2c('0x2a')][_0x7c2c('0x20')](this));ami['on']('custom:dialconnect',this[_0x7c2c('0x2a')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x2b'),this[_0x7c2c('0x2a')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x2c'),this[_0x7c2c('0x1f')]['bind'](this));ami['on'](_0x7c2c('0x2d'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x2e'),this[_0x7c2c('0x1f')]['bind'](this));ami['on']('custom:incomingmessage',this[_0x7c2c('0x1f')]['bind'](this));ami['on']('custom:outgoingmessage',this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x2f'),this[_0x7c2c('0x1f')]['bind'](this));ami['on'](_0x7c2c('0x30'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));ami['on'](_0x7c2c('0x31'),this[_0x7c2c('0x1f')][_0x7c2c('0x20')](this));}Trigger[_0x7c2c('0x32')][_0x7c2c('0x33')]=function(_0x5c248e,_0x40c415,_0x3230a1){logger[_0x7c2c('0x34')](_0x5c248e,_0x40c415,JSON[_0x7c2c('0x35')](_0x3230a1));io['to'](_0x5c248e)['emit'](_0x40c415,_0x3230a1);};Trigger['prototype'][_0x7c2c('0x1f')]=function(_0x4acc5d){var _0x4c421c=_['clone'](_0x4acc5d);if(typeof _0x4c421c[_0x7c2c('0x36')]===_0x7c2c('0x37')){_0x4c421c[_0x7c2c('0x36')]=_0x7c2c('0x38');}this[_0x7c2c('0x39')](_0x4c421c);};Trigger[_0x7c2c('0x32')][_0x7c2c('0x2a')]=function(_0x311efd){if(this[_0x7c2c('0xf')][_0x311efd[_0x7c2c('0x3a')]]){this[_0x7c2c('0x1f')](_0x311efd);}};Trigger['prototype']['checkTriggers']=function(_0x3920b6){var _0x360928;for(var _0x3437d1 in this[_0x7c2c('0xe')]){if(this['triggers'][_0x7c2c('0x3b')](_0x3437d1)){if(this[_0x7c2c('0xe')][_0x3437d1][_0x7c2c('0x3c')]){_0x360928=this[_0x7c2c('0x3d')](this[_0x7c2c('0xe')][_0x3437d1],_0x3920b6);if(_0x360928){_[_0x7c2c('0x3e')](_0x3920b6,_0x3920b6[_0x7c2c('0x3f')]);for(var _0x2e4093=0x0,_0xe55c39,_0x4e1f79,_0xe2a67b;_0x2e4093<this['triggers'][_0x3437d1][_0x7c2c('0x40')][_0x7c2c('0x41')];_0x2e4093+=0x1){_0xe55c39=this['triggers'][_0x3437d1][_0x7c2c('0x40')][_0x2e4093];if(this['agents'][_0x3920b6[_0x7c2c('0x3a')]]){switch(_0xe55c39[_0x7c2c('0x42')][_0x7c2c('0x43')]()){case _0x7c2c('0x44'):break;case'motionbar':case _0x7c2c('0x45'):var _0x500974={};switch(barAndWebActions[_0xe55c39['data1']]){case _0x7c2c('0xc'):_0x500974[_0x7c2c('0x46')]=_0xe55c39[_0x7c2c('0x47')];_0x500974['html']=this[_0x7c2c('0x11')][_0xe55c39[_0x7c2c('0x47')]]?Mustache['render'](this[_0x7c2c('0x11')][_0xe55c39['data2']][_0x7c2c('0x48')],_0x3920b6):_0x7c2c('0x49');break;case'url':_0x500974['uri']=this[_0x7c2c('0x4a')](_0xe55c39[_0x7c2c('0x47')],_0x3920b6,_['isNil'](_0xe55c39[_0x7c2c('0x4b')])?!![]:parseInt(_0xe55c39['data3'],0xa));if(_['isNil'](_0xe55c39[_0x7c2c('0x4c')])){_0x500974[_0x7c2c('0x4d')]='0';}else{_0x500974[_0x7c2c('0x4e')]=_0xe55c39[_0x7c2c('0x4c')];_0x500974[_0x7c2c('0x4f')]=_[_0x7c2c('0x50')](_0xe55c39[_0x7c2c('0x51')])?_0x7c2c('0x52'):_0xe55c39[_0x7c2c('0x51')];_0x500974['windowHeight']=_['isNil'](_0xe55c39[_0x7c2c('0x53')])?_0x7c2c('0x54'):_0xe55c39[_0x7c2c('0x53')];}break;case'winapp':_0x500974['winApplication']=_0xe55c39[_0x7c2c('0x47')]?Mustache[_0x7c2c('0x55')](_0xe55c39[_0x7c2c('0x47')],_0x3920b6):'';_0x500974[_0x7c2c('0x56')]=_0xe55c39['data3']?Mustache['render'](_0xe55c39['data3'],_0x3920b6):'';break;}this[_0x7c2c('0x33')](util[_0x7c2c('0x57')](_0x7c2c('0x58'),this[_0x7c2c('0xf')][_0x3920b6[_0x7c2c('0x3a')]]['name']),util[_0x7c2c('0x57')](_0x7c2c('0x59'),_0xe55c39['action'][_0x7c2c('0x43')](),barAndWebActions[_0xe55c39['data1']]),_[_0x7c2c('0x3e')](_0x500974,_0x3920b6));break;case _0x7c2c('0x5a'):this[_0x7c2c('0x33')](util['format']('user:%s',this[_0x7c2c('0xf')][_0x3920b6['interface']][_0x7c2c('0x5b')]),util[_0x7c2c('0x57')]('trigger:%s',_0xe55c39[_0x7c2c('0x42')][_0x7c2c('0x43')]()),_['merge']({'ProjectId':parseInt(_0xe55c39[_0x7c2c('0x5c')],0xa)},_0x3920b6));break;default:this[_0x7c2c('0x33')](util['format'](_0x7c2c('0x58'),this[_0x7c2c('0xf')][_0x3920b6[_0x7c2c('0x3a')]]['name']),util[_0x7c2c('0x57')]('trigger:%s',_0xe55c39[_0x7c2c('0x42')][_0x7c2c('0x43')]()),_['merge']({},_0xe55c39,_0x3920b6));}}switch(_0xe55c39[_0x7c2c('0x42')][_0x7c2c('0x43')]()){case _0x7c2c('0x44'):cmContact[_0x7c2c('0x5d')](this['agents'][_0x3920b6[_0x7c2c('0x3a')]],this[_0x7c2c('0xe')][_0x3437d1],_0xe55c39,_0x3920b6);break;case'integration':integration[_0x7c2c('0x5d')](_0xe55c39,_0x3920b6,this['accounts'],this[_0x7c2c('0xf')][_0x3920b6[_0x7c2c('0x3a')]],this[_0x7c2c('0x10')][_0x3920b6[_0x7c2c('0x5e')]],this[_0x7c2c('0x12')][_0x3920b6['routeId']]);break;case _0x7c2c('0x5f'):urlforward[_0x7c2c('0x5d')](_0xe55c39,_0x3920b6);break;case'script':script['exec'](_0xe55c39,_0x3920b6);break;}}}}}}};Trigger['prototype'][_0x7c2c('0x4a')]=function(_0x4ada7a,_0x1e61fe,_0x4bcef3){var _0x469515=url[_0x7c2c('0x60')](Mustache[_0x7c2c('0x55')](_0x4ada7a,_0x1e61fe),!![]);if(_0x4bcef3){_[_0x7c2c('0x3e')](_0x469515[_0x7c2c('0x61')],_0x1e61fe);}delete _0x469515[_0x7c2c('0x62')];var _0x2bb0f8=url[_0x7c2c('0x57')](_0x469515);_0x2bb0f8=_0x2bb0f8['replace'](/\/\?/g,'?');return _0x2bb0f8;};Trigger['prototype']['checkTrigger']=function(_0x2064d5,_0xf8fd9b){var _0x233e9c=!![];var _0x299c15=!![];var _0x44602a=![];if(_0x2064d5[_0x7c2c('0x63')]===_0xf8fd9b[_0x7c2c('0x36')]){_0x44602a=!![];}if(_0x2064d5[_0x7c2c('0x64')]['length']){_0x233e9c=_['every'](_0x2064d5[_0x7c2c('0x64')],this[_0x7c2c('0x65')](_0xf8fd9b,_0x2064d5['channel']));}if(_0x2064d5[_0x7c2c('0x66')]['length']){_0x299c15=_['some'](_0x2064d5[_0x7c2c('0x66')],this[_0x7c2c('0x65')](_0xf8fd9b,_0x2064d5[_0x7c2c('0x63')]));}return _0x44602a&&_0x233e9c&&_0x299c15;};Trigger[_0x7c2c('0x32')][_0x7c2c('0x65')]=function(_0x1e0fef,_0x2d4459){return function(_0x2a4de1){switch(_0x2a4de1[_0x7c2c('0x67')]){case _0x7c2c('0x68'):if(_0x1e0fef[_0x7c2c('0x63')]===_0x2d4459){if(_0x2d4459===_0x7c2c('0x69')){return _0x1e0fef[_0x7c2c('0x6a')]?operators[_0x2a4de1[_0x7c2c('0x6b')]](Number(_0x2a4de1['value']),_0x1e0fef[_0x7c2c('0x6a')]):![];}else{return _0x1e0fef[_['upperFirst'](_0x2d4459)+'AccountId']?operators[_0x2a4de1['operator']](Number(_0x2a4de1['value']),_0x1e0fef[_[_0x7c2c('0x6c')](_0x2d4459)+_0x7c2c('0x6d')]):![];}}break;case _0x7c2c('0x6e'):case _0x7c2c('0x6f'):if(_0x1e0fef[_0x7c2c('0x63')]===_0x2d4459){return _0x1e0fef[_0x7c2c('0x70')]?operators[_0x2a4de1['operator']](_0x2a4de1[_0x7c2c('0x71')],_0x1e0fef[_0x7c2c('0x70')]):![];}break;case _0x7c2c('0x5e'):return _0x1e0fef[_0x7c2c('0x5e')]?operators[_0x2a4de1[_0x7c2c('0x6b')]](_0x2a4de1[_0x7c2c('0x71')],_0x1e0fef['queue']):![];case _0x7c2c('0x72'):return _0x1e0fef[_0x7c2c('0x73')]?operators[_0x2a4de1['operator']](_0x2a4de1[_0x7c2c('0x71')],_0x1e0fef[_0x7c2c('0x73')]):![];case'lastevent':return _0x1e0fef[_0x7c2c('0x74')]?operators[_0x2a4de1[_0x7c2c('0x6b')]](_0x2a4de1['value'],_0x1e0fef['lastevent']):![];case _0x7c2c('0x75'):return _0x1e0fef['routeId']?operators[_0x2a4de1[_0x7c2c('0x6b')]](_0x2a4de1['value'],_0x1e0fef[_0x7c2c('0x75')]):![];case _0x7c2c('0x76'):if(_0x2a4de1['value']===_0x7c2c('0x77'))_0x2a4de1['value']=null;return typeof _0x1e0fef[_0x7c2c('0x78')]!==_0x7c2c('0x37')?operators[_0x2a4de1[_0x7c2c('0x6b')]](_0x2a4de1['value'],_0x1e0fef[_0x7c2c('0x78')]):![];case _0x7c2c('0x79'):if(_0x1e0fef[_0x7c2c('0x63')]===_0x2d4459){return _0x2a4de1[_0x7c2c('0x71')]==='created'&&_0x2a4de1[_0x7c2c('0x6b')]===_0x7c2c('0x7a')?!![]:![];}break;}return![];};};module[_0x7c2c('0x7b')]=Trigger;