216e36a9e44527caa37b7cf7e1085eb5bb4b6a5b
[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 _0xce1c=['custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','prototype','emit','info','stringify','motionChannel','undefined','voice','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','templates','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','800','data5','windowHeight','data6','winApplication','user:%s','format','trigger:%s:%s','name','integration','exec','accounts','queue','urlforward','script','query','channel','AllConditions','length','every','checkConditions','AnyConditions','field','account','chat','operator','value','ChatWebsiteId','AccountId','upperFirst','message','event','agent','membername','lastevent','routeId','mailSubstatus','substatus','util','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0xce1c,0x1d1));var _0xcce1=function(_0x47cd82,_0x3665de){_0x47cd82=_0x47cd82-0x0;var _0x316015=_0xce1c[_0x47cd82];return _0x316015;};'use strict';var util=require(_0xcce1('0x0'));var _=require('lodash');var url=require(_0xcce1('0x1'));var Mustache=require(_0xcce1('0x2'));var Redis=require(_0xcce1('0x3'));var urlforward=require(_0xcce1('0x4'));var integration=require(_0xcce1('0x5'));var cmContact=require(_0xcce1('0x6'));var script=require(_0xcce1('0x7'));var config=require(_0xcce1('0x8'));var logger=require(_0xcce1('0x9'))(_0xcce1('0xa'));var ami=require(_0xcce1('0xb'));config[_0xcce1('0xc')]=_[_0xcce1('0xd')](config['redis'],{'host':_0xcce1('0xe'),'port':0x18eb});var io=require(_0xcce1('0xf'))(new Redis(config['redis']));var operators={'equals':function(_0x4944bc,_0xf43d2a){return _0x4944bc==_0xf43d2a;},'not_equals':function(_0x1cbbf6,_0x5ab7cf){return _0x1cbbf6!=_0x5ab7cf;}};var barAndWebActions=[_0xcce1('0x10'),_0xcce1('0x1'),_0xcce1('0x11')];function Trigger(_0x203f89){this[_0xcce1('0x12')]=_0x203f89[_0xcce1('0x12')];this[_0xcce1('0x13')]=_0x203f89[_0xcce1('0x13')];this[_0xcce1('0x14')]=_0x203f89[_0xcce1('0x14')];this['templates']=_0x203f89['templates'];this[_0xcce1('0x15')]=_0x203f89[_0xcce1('0x15')];this[_0xcce1('0x16')]=_0x203f89[_0xcce1('0x16')];this['freshdeskAccounts']=_0x203f89[_0xcce1('0x17')];this[_0xcce1('0x18')]=_0x203f89['salesforceAccounts'];this[_0xcce1('0x19')]=_0x203f89[_0xcce1('0x19')];this['zohoAccounts']=_0x203f89[_0xcce1('0x1a')];this[_0xcce1('0x1b')]=_0x203f89[_0xcce1('0x1b')];this[_0xcce1('0x1c')]=_0x203f89['vtigerAccounts'];this[_0xcce1('0x1d')]=_0x203f89[_0xcce1('0x1d')];this['dynamics365Accounts']=_0x203f89[_0xcce1('0x1e')];this[_0xcce1('0x1f')]=_0x203f89[_0xcce1('0x1f')];this['accounts']={'zendesk':this[_0xcce1('0x16')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xcce1('0x17')],'sugarcrm':this[_0xcce1('0x19')],'zoho':this[_0xcce1('0x1a')],'desk':this[_0xcce1('0x1b')],'vtiger':this[_0xcce1('0x1c')],'dynamics365':this[_0xcce1('0x1e')],'freshsales':this[_0xcce1('0x1f')],'servicenow':this[_0xcce1('0x1d')]};ami['on']('custom:agentcalled',this[_0xcce1('0x20')]['bind'](this));ami['on'](_0xcce1('0x21'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on']('custom:agentringnoanswer',this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x23'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x24'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x25'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x26'),this['syncCustomEvent'][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x27'),this[_0xcce1('0x20')]['bind'](this));ami['on'](_0xcce1('0x28'),this['syncCustomEvent'][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x29'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x2a'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x2b'),this[_0xcce1('0x20')]['bind'](this));ami['on'](_0xcce1('0x2c'),this[_0xcce1('0x2d')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x2e'),this[_0xcce1('0x2d')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x2f'),this[_0xcce1('0x2d')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x30'),this['syncCustomEvent'][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x31'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x32'),this[_0xcce1('0x20')]['bind'](this));ami['on'](_0xcce1('0x33'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x34'),this['syncCustomEvent'][_0xcce1('0x22')](this));ami['on']('custom:acceptmessage',this['syncCustomEvent'][_0xcce1('0x22')](this));ami['on'](_0xcce1('0x35'),this[_0xcce1('0x20')][_0xcce1('0x22')](this));}Trigger[_0xcce1('0x36')][_0xcce1('0x37')]=function(_0x31da52,_0xd9ef0a,_0x11c24b){logger[_0xcce1('0x38')](_0x31da52,_0xd9ef0a,JSON[_0xcce1('0x39')](_0x11c24b));io['to'](_0x31da52)[_0xcce1('0x37')](_0xd9ef0a,_0x11c24b);};Trigger[_0xcce1('0x36')]['syncCustomEvent']=function(_0x286d07){var _0x1708d4=_['clone'](_0x286d07);if(typeof _0x1708d4[_0xcce1('0x3a')]===_0xcce1('0x3b')){_0x1708d4[_0xcce1('0x3a')]=_0xcce1('0x3c');}this[_0xcce1('0x3d')](_0x1708d4);};Trigger[_0xcce1('0x36')][_0xcce1('0x2d')]=function(_0x44d2d2){if(this[_0xcce1('0x13')][_0x44d2d2['interface']]){this[_0xcce1('0x20')](_0x44d2d2);}};Trigger['prototype'][_0xcce1('0x3d')]=function(_0x107533){var _0x44b3db;for(var _0x5e0b6a in this[_0xcce1('0x12')]){if(this[_0xcce1('0x12')][_0xcce1('0x3e')](_0x5e0b6a)){if(this[_0xcce1('0x12')][_0x5e0b6a][_0xcce1('0x3f')]){_0x44b3db=this[_0xcce1('0x40')](this[_0xcce1('0x12')][_0x5e0b6a],_0x107533);if(_0x44b3db){_[_0xcce1('0x41')](_0x107533,_0x107533[_0xcce1('0x42')]);for(var _0x48fa8e=0x0,_0x4aa5a7,_0x2e508b,_0x2acf38;_0x48fa8e<this[_0xcce1('0x12')][_0x5e0b6a][_0xcce1('0x43')]['length'];_0x48fa8e+=0x1){_0x4aa5a7=this[_0xcce1('0x12')][_0x5e0b6a]['Actions'][_0x48fa8e];if(this[_0xcce1('0x13')][_0x107533[_0xcce1('0x44')]]){switch(_0x4aa5a7[_0xcce1('0x45')][_0xcce1('0x46')]()){case _0xcce1('0x47'):break;case _0xcce1('0x48'):case _0xcce1('0x49'):var _0x311a1f={};switch(barAndWebActions[_0x4aa5a7[_0xcce1('0x4a')]]){case'popup':_0x311a1f[_0xcce1('0x4b')]=_0x4aa5a7[_0xcce1('0x4c')];_0x311a1f[_0xcce1('0x4d')]=this[_0xcce1('0x4e')][_0x4aa5a7[_0xcce1('0x4c')]]?Mustache[_0xcce1('0x4f')](this[_0xcce1('0x4e')][_0x4aa5a7[_0xcce1('0x4c')]][_0xcce1('0x4d')],_0x107533):_0xcce1('0x50');break;case _0xcce1('0x1'):_0x311a1f[_0xcce1('0x51')]=this[_0xcce1('0x52')](_0x4aa5a7[_0xcce1('0x4c')],_0x107533,_[_0xcce1('0x53')](_0x4aa5a7[_0xcce1('0x54')])?!![]:parseInt(_0x4aa5a7[_0xcce1('0x54')],0xa));if(_[_0xcce1('0x53')](_0x4aa5a7[_0xcce1('0x55')])){_0x311a1f[_0xcce1('0x56')]='0';}else{_0x311a1f[_0xcce1('0x57')]=_0x4aa5a7[_0xcce1('0x55')];_0x311a1f[_0xcce1('0x58')]=_[_0xcce1('0x53')](_0x4aa5a7['data5'])?_0xcce1('0x59'):_0x4aa5a7[_0xcce1('0x5a')];_0x311a1f[_0xcce1('0x5b')]=_['isNil'](_0x4aa5a7[_0xcce1('0x5c')])?'600':_0x4aa5a7[_0xcce1('0x5c')];}break;case _0xcce1('0x11'):_0x311a1f[_0xcce1('0x5d')]=_0x4aa5a7['data2']?Mustache[_0xcce1('0x4f')](_0x4aa5a7[_0xcce1('0x4c')],_0x107533):'';_0x311a1f['winArguments']=_0x4aa5a7[_0xcce1('0x54')]?Mustache[_0xcce1('0x4f')](_0x4aa5a7[_0xcce1('0x54')],_0x107533):'';break;}this[_0xcce1('0x37')](util['format'](_0xcce1('0x5e'),this[_0xcce1('0x13')][_0x107533[_0xcce1('0x44')]]['name']),util[_0xcce1('0x5f')](_0xcce1('0x60'),_0x4aa5a7[_0xcce1('0x45')][_0xcce1('0x46')](),barAndWebActions[_0x4aa5a7[_0xcce1('0x4a')]]),_[_0xcce1('0x41')](_0x311a1f,_0x107533));break;case'jscripty':this[_0xcce1('0x37')](util[_0xcce1('0x5f')](_0xcce1('0x5e'),this['agents'][_0x107533['interface']][_0xcce1('0x61')]),util[_0xcce1('0x5f')]('trigger:%s',_0x4aa5a7[_0xcce1('0x45')][_0xcce1('0x46')]()),_[_0xcce1('0x41')]({'ProjectId':parseInt(_0x4aa5a7[_0xcce1('0x4a')],0xa)},_0x107533));break;default:this[_0xcce1('0x37')](util['format'](_0xcce1('0x5e'),this[_0xcce1('0x13')][_0x107533[_0xcce1('0x44')]][_0xcce1('0x61')]),util[_0xcce1('0x5f')]('trigger:%s',_0x4aa5a7[_0xcce1('0x45')]['toLowerCase']()),_[_0xcce1('0x41')]({},_0x4aa5a7,_0x107533));}}switch(_0x4aa5a7[_0xcce1('0x45')][_0xcce1('0x46')]()){case _0xcce1('0x47'):cmContact['exec'](this[_0xcce1('0x13')][_0x107533[_0xcce1('0x44')]],this[_0xcce1('0x12')][_0x5e0b6a],_0x4aa5a7,_0x107533);break;case _0xcce1('0x62'):integration[_0xcce1('0x63')](_0x4aa5a7,_0x107533,this[_0xcce1('0x64')],this[_0xcce1('0x13')][_0x107533['interface']],this[_0xcce1('0x14')][_0x107533[_0xcce1('0x65')]],this[_0xcce1('0x15')][_0x107533['routeId']]);break;case _0xcce1('0x66'):urlforward[_0xcce1('0x63')](_0x4aa5a7,_0x107533);break;case _0xcce1('0x67'):script[_0xcce1('0x63')](_0x4aa5a7,_0x107533);break;}}}}}}};Trigger[_0xcce1('0x36')][_0xcce1('0x52')]=function(_0x11e598,_0x2aad64,_0x269449){var _0x31818b=url['parse'](Mustache[_0xcce1('0x4f')](_0x11e598,_0x2aad64),!![]);if(_0x269449){_[_0xcce1('0x41')](_0x31818b[_0xcce1('0x68')],_0x2aad64);}delete _0x31818b['search'];var _0x28066f=url[_0xcce1('0x5f')](_0x31818b);_0x28066f=_0x28066f['replace'](/\/\?/g,'?');return _0x28066f;};Trigger[_0xcce1('0x36')][_0xcce1('0x40')]=function(_0x55f4b7,_0x4e5e47){var _0xf26f52=!![];var _0x5010f1=!![];var _0x2fb966=![];if(_0x55f4b7[_0xcce1('0x69')]===_0x4e5e47[_0xcce1('0x3a')]){_0x2fb966=!![];}if(_0x55f4b7[_0xcce1('0x6a')][_0xcce1('0x6b')]){_0xf26f52=_[_0xcce1('0x6c')](_0x55f4b7['AllConditions'],this[_0xcce1('0x6d')](_0x4e5e47,_0x55f4b7['channel']));}if(_0x55f4b7[_0xcce1('0x6e')][_0xcce1('0x6b')]){_0x5010f1=_['some'](_0x55f4b7[_0xcce1('0x6e')],this[_0xcce1('0x6d')](_0x4e5e47,_0x55f4b7[_0xcce1('0x69')]));}return _0x2fb966&&_0xf26f52&&_0x5010f1;};Trigger[_0xcce1('0x36')][_0xcce1('0x6d')]=function(_0x2efe76,_0x22e573){return function(_0x335839){switch(_0x335839[_0xcce1('0x6f')]){case _0xcce1('0x70'):if(_0x2efe76[_0xcce1('0x69')]===_0x22e573){if(_0x22e573===_0xcce1('0x71')){return _0x2efe76['ChatWebsiteId']?operators[_0x335839[_0xcce1('0x72')]](Number(_0x335839[_0xcce1('0x73')]),_0x2efe76[_0xcce1('0x74')]):![];}else{return _0x2efe76[_['upperFirst'](_0x22e573)+_0xcce1('0x75')]?operators[_0x335839[_0xcce1('0x72')]](Number(_0x335839[_0xcce1('0x73')]),_0x2efe76[_[_0xcce1('0x76')](_0x22e573)+_0xcce1('0x75')]):![];}}break;case'interaction':case _0xcce1('0x77'):if(_0x2efe76[_0xcce1('0x69')]===_0x22e573){return _0x2efe76[_0xcce1('0x78')]?operators[_0x335839[_0xcce1('0x72')]](_0x335839[_0xcce1('0x73')],_0x2efe76[_0xcce1('0x78')]):![];}break;case'queue':return _0x2efe76[_0xcce1('0x65')]?operators[_0x335839['operator']](_0x335839['value'],_0x2efe76[_0xcce1('0x65')]):![];case _0xcce1('0x79'):return _0x2efe76[_0xcce1('0x7a')]?operators[_0x335839[_0xcce1('0x72')]](_0x335839[_0xcce1('0x73')],_0x2efe76[_0xcce1('0x7a')]):![];case'lastevent':return _0x2efe76[_0xcce1('0x7b')]?operators[_0x335839[_0xcce1('0x72')]](_0x335839['value'],_0x2efe76['lastevent']):![];case _0xcce1('0x7c'):return _0x2efe76['routeId']?operators[_0x335839[_0xcce1('0x72')]](_0x335839[_0xcce1('0x73')],_0x2efe76[_0xcce1('0x7c')]):![];case _0xcce1('0x7d'):if(_0x335839['value']==='null')_0x335839[_0xcce1('0x73')]=null;return typeof _0x2efe76['substatus']!=='undefined'?operators[_0x335839[_0xcce1('0x72')]](_0x335839[_0xcce1('0x73')],_0x2efe76[_0xcce1('0x7e')]):![];}return![];};};module['exports']=Trigger;