Built motion from commit 994c64e1.|2.6.1
[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 _0x2d85=['bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','interface','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','action','toLowerCase','motionbar','browser','data1','TemplateId','data2','html','template\x20not\x20found','uri','buildUri','isNil','data3','location','uriLocation','data4','windowWidth','data5','800','windowHeight','data6','600','winApplication','render','format','user:%s','name','trigger:%s:%s','jscripty','trigger:%s','exec','queue','routeId','urlforward','script','parse','query','channel','checkConditions','AnyConditions','some','field','account','operator','value','upperFirst','AccountId','message','event','agent','membername','lastevent','substatus','undefined','offlineMessage','created','equals','exports','util','lodash','url','mustache','ioredis','./integration','./script','../../../config/environment','redis','defaults','popup','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled'];(function(_0x137a8d,_0x3c382c){var _0x56fb4d=function(_0xc83e6e){while(--_0xc83e6e){_0x137a8d['push'](_0x137a8d['shift']());}};_0x56fb4d(++_0x3c382c);}(_0x2d85,0xd8));var _0x52d8=function(_0x3f6c4a,_0x2070ff){_0x3f6c4a=_0x3f6c4a-0x0;var _0xf98a10=_0x2d85[_0x3f6c4a];return _0xf98a10;};'use strict';var util=require(_0x52d8('0x0'));var _=require(_0x52d8('0x1'));var url=require(_0x52d8('0x2'));var Mustache=require(_0x52d8('0x3'));var Redis=require(_0x52d8('0x4'));var urlforward=require('./urlforward');var integration=require(_0x52d8('0x5'));var cmContact=require('./cmContact');var script=require(_0x52d8('0x6'));var config=require(_0x52d8('0x7'));var logger=require('../../../config/logger')('trigger');var ami=require('../ami');config[_0x52d8('0x8')]=_[_0x52d8('0x9')](config[_0x52d8('0x8')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x52d8('0x8')]));var operators={'equals':function(_0x5c9fc9,_0x5d6aa9){return _0x5c9fc9==_0x5d6aa9;},'not_equals':function(_0xee0ff3,_0x2e87e0){return _0xee0ff3!=_0x2e87e0;}};var barAndWebActions=[_0x52d8('0xa'),_0x52d8('0x2'),'winapp'];function Trigger(_0x2de78c){this[_0x52d8('0xb')]=_0x2de78c[_0x52d8('0xb')];this[_0x52d8('0xc')]=_0x2de78c[_0x52d8('0xc')];this[_0x52d8('0xd')]=_0x2de78c['voiceQueues'];this[_0x52d8('0xe')]=_0x2de78c['templates'];this[_0x52d8('0xf')]=_0x2de78c['voiceExtensions'];this[_0x52d8('0x10')]=_0x2de78c[_0x52d8('0x10')];this[_0x52d8('0x11')]=_0x2de78c['freshdeskAccounts'];this['salesforceAccounts']=_0x2de78c[_0x52d8('0x12')];this[_0x52d8('0x13')]=_0x2de78c[_0x52d8('0x13')];this[_0x52d8('0x14')]=_0x2de78c['zohoAccounts'];this[_0x52d8('0x15')]=_0x2de78c[_0x52d8('0x15')];this[_0x52d8('0x16')]=_0x2de78c[_0x52d8('0x16')];this['servicenowAccounts']=_0x2de78c[_0x52d8('0x17')];this[_0x52d8('0x18')]=_0x2de78c[_0x52d8('0x18')];this['freshsalesAccounts']=_0x2de78c[_0x52d8('0x19')];this[_0x52d8('0x1a')]={'zendesk':this[_0x52d8('0x10')],'salesforce':this[_0x52d8('0x12')],'freshdesk':this[_0x52d8('0x11')],'sugarcrm':this[_0x52d8('0x13')],'zoho':this[_0x52d8('0x14')],'desk':this[_0x52d8('0x15')],'vtiger':this[_0x52d8('0x16')],'dynamics365':this[_0x52d8('0x18')],'freshsales':this[_0x52d8('0x19')],'servicenow':this[_0x52d8('0x17')]};ami['on'](_0x52d8('0x1b'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x1d'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x1f'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x20'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x21'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x22'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on']('custom:agentbusy',this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x23'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on']('custom:agentreject',this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x24'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x25'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on']('custom:timeout',this['syncCustomEvent']['bind'](this));ami['on'](_0x52d8('0x26'),this[_0x52d8('0x27')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x28'),this['syncAgentDial'][_0x52d8('0x1c')](this));ami['on']('custom:dialend',this[_0x52d8('0x27')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x29'),this[_0x52d8('0x1e')]['bind'](this));ami['on'](_0x52d8('0x2a'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x2b'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x2c'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x2d'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x2e'),this[_0x52d8('0x1e')][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x2f'),this['syncCustomEvent'][_0x52d8('0x1c')](this));ami['on'](_0x52d8('0x30'),this[_0x52d8('0x1e')]['bind'](this));}Trigger[_0x52d8('0x31')][_0x52d8('0x32')]=function(_0x5df09c,_0x60642b,_0x324db8){logger[_0x52d8('0x33')](_0x5df09c,_0x60642b,JSON[_0x52d8('0x34')](_0x324db8));io['to'](_0x5df09c)[_0x52d8('0x32')](_0x60642b,_0x324db8);};Trigger[_0x52d8('0x31')][_0x52d8('0x1e')]=function(_0x5ed66b){var _0x3227e5=_[_0x52d8('0x35')](_0x5ed66b);if(typeof _0x3227e5[_0x52d8('0x36')]==='undefined'){_0x3227e5[_0x52d8('0x36')]='voice';}this['checkTriggers'](_0x3227e5);};Trigger[_0x52d8('0x31')][_0x52d8('0x27')]=function(_0x5bdbba){if(this[_0x52d8('0xc')][_0x5bdbba[_0x52d8('0x37')]]){this[_0x52d8('0x1e')](_0x5bdbba);}};Trigger[_0x52d8('0x31')][_0x52d8('0x38')]=function(_0x73b240){var _0x30e11a;for(var _0x4da59b in this[_0x52d8('0xb')]){if(this[_0x52d8('0xb')][_0x52d8('0x39')](_0x4da59b)){if(this[_0x52d8('0xb')][_0x4da59b][_0x52d8('0x3a')]){_0x30e11a=this[_0x52d8('0x3b')](this[_0x52d8('0xb')][_0x4da59b],_0x73b240);if(_0x30e11a){_[_0x52d8('0x3c')](_0x73b240,_0x73b240[_0x52d8('0x3d')]);for(var _0x836409=0x0,_0x5a0df2,_0x396236,_0x2d539c;_0x836409<this['triggers'][_0x4da59b][_0x52d8('0x3e')][_0x52d8('0x3f')];_0x836409+=0x1){_0x5a0df2=this[_0x52d8('0xb')][_0x4da59b]['Actions'][_0x836409];if(this[_0x52d8('0xc')][_0x73b240[_0x52d8('0x37')]]){switch(_0x5a0df2[_0x52d8('0x40')][_0x52d8('0x41')]()){case'contactmanager':break;case _0x52d8('0x42'):case _0x52d8('0x43'):var _0x4440fb={};switch(barAndWebActions[_0x5a0df2[_0x52d8('0x44')]]){case _0x52d8('0xa'):_0x4440fb[_0x52d8('0x45')]=_0x5a0df2[_0x52d8('0x46')];_0x4440fb[_0x52d8('0x47')]=this[_0x52d8('0xe')][_0x5a0df2[_0x52d8('0x46')]]?Mustache['render'](this[_0x52d8('0xe')][_0x5a0df2['data2']][_0x52d8('0x47')],_0x73b240):_0x52d8('0x48');break;case'url':_0x4440fb[_0x52d8('0x49')]=this[_0x52d8('0x4a')](_0x5a0df2['data2'],_0x73b240,_[_0x52d8('0x4b')](_0x5a0df2[_0x52d8('0x4c')])?!![]:parseInt(_0x5a0df2[_0x52d8('0x4c')],0xa));if(_[_0x52d8('0x4b')](_0x5a0df2['data4'])){_0x4440fb[_0x52d8('0x4d')]='0';}else{_0x4440fb[_0x52d8('0x4e')]=_0x5a0df2[_0x52d8('0x4f')];_0x4440fb[_0x52d8('0x50')]=_[_0x52d8('0x4b')](_0x5a0df2[_0x52d8('0x51')])?_0x52d8('0x52'):_0x5a0df2[_0x52d8('0x51')];_0x4440fb[_0x52d8('0x53')]=_[_0x52d8('0x4b')](_0x5a0df2[_0x52d8('0x54')])?_0x52d8('0x55'):_0x5a0df2[_0x52d8('0x54')];}break;case'winapp':_0x4440fb[_0x52d8('0x56')]=_0x5a0df2[_0x52d8('0x46')]?Mustache[_0x52d8('0x57')](_0x5a0df2[_0x52d8('0x46')],_0x73b240):'';_0x4440fb['winArguments']=_0x5a0df2[_0x52d8('0x4c')]?Mustache[_0x52d8('0x57')](_0x5a0df2[_0x52d8('0x4c')],_0x73b240):'';break;}this[_0x52d8('0x32')](util[_0x52d8('0x58')](_0x52d8('0x59'),this[_0x52d8('0xc')][_0x73b240[_0x52d8('0x37')]][_0x52d8('0x5a')]),util[_0x52d8('0x58')](_0x52d8('0x5b'),_0x5a0df2[_0x52d8('0x40')][_0x52d8('0x41')](),barAndWebActions[_0x5a0df2[_0x52d8('0x44')]]),_[_0x52d8('0x3c')](_0x4440fb,_0x73b240));break;case _0x52d8('0x5c'):this['emit'](util[_0x52d8('0x58')]('user:%s',this[_0x52d8('0xc')][_0x73b240['interface']][_0x52d8('0x5a')]),util[_0x52d8('0x58')](_0x52d8('0x5d'),_0x5a0df2['action']['toLowerCase']()),_[_0x52d8('0x3c')]({'ProjectId':parseInt(_0x5a0df2[_0x52d8('0x44')],0xa)},_0x73b240));break;default:this[_0x52d8('0x32')](util[_0x52d8('0x58')]('user:%s',this[_0x52d8('0xc')][_0x73b240['interface']]['name']),util[_0x52d8('0x58')]('trigger:%s',_0x5a0df2['action'][_0x52d8('0x41')]()),_['merge']({},_0x5a0df2,_0x73b240));}}switch(_0x5a0df2[_0x52d8('0x40')][_0x52d8('0x41')]()){case'contactmanager':cmContact['exec'](this[_0x52d8('0xc')][_0x73b240[_0x52d8('0x37')]],this[_0x52d8('0xb')][_0x4da59b],_0x5a0df2,_0x73b240);break;case'integration':integration[_0x52d8('0x5e')](_0x5a0df2,_0x73b240,this[_0x52d8('0x1a')],this['agents'][_0x73b240[_0x52d8('0x37')]],this['voiceQueues'][_0x73b240[_0x52d8('0x5f')]],this[_0x52d8('0xf')][_0x73b240[_0x52d8('0x60')]]);break;case _0x52d8('0x61'):urlforward[_0x52d8('0x5e')](_0x5a0df2,_0x73b240);break;case _0x52d8('0x62'):script['exec'](_0x5a0df2,_0x73b240);break;}}}}}}};Trigger[_0x52d8('0x31')]['buildUri']=function(_0xda01c5,_0xa95991,_0x3a0f97){var _0x14a8d1=url[_0x52d8('0x63')](Mustache[_0x52d8('0x57')](_0xda01c5,_0xa95991),!![]);if(_0x3a0f97){_['merge'](_0x14a8d1[_0x52d8('0x64')],_0xa95991);}delete _0x14a8d1['search'];var _0x31ca0a=url['format'](_0x14a8d1);_0x31ca0a=_0x31ca0a['replace'](/\/\?/g,'?');return _0x31ca0a;};Trigger[_0x52d8('0x31')]['checkTrigger']=function(_0x2165bb,_0x136473){var _0x203721=!![];var _0x2b6b66=!![];var _0x29d945=![];if(_0x2165bb[_0x52d8('0x65')]===_0x136473[_0x52d8('0x36')]){_0x29d945=!![];}if(_0x2165bb['AllConditions']['length']){_0x203721=_['every'](_0x2165bb['AllConditions'],this[_0x52d8('0x66')](_0x136473,_0x2165bb[_0x52d8('0x65')]));}if(_0x2165bb[_0x52d8('0x67')][_0x52d8('0x3f')]){_0x2b6b66=_[_0x52d8('0x68')](_0x2165bb['AnyConditions'],this[_0x52d8('0x66')](_0x136473,_0x2165bb[_0x52d8('0x65')]));}return _0x29d945&&_0x203721&&_0x2b6b66;};Trigger[_0x52d8('0x31')][_0x52d8('0x66')]=function(_0x3d3fd6,_0x5b9ecc){return function(_0x573861){switch(_0x573861[_0x52d8('0x69')]){case _0x52d8('0x6a'):if(_0x3d3fd6[_0x52d8('0x65')]===_0x5b9ecc){if(_0x5b9ecc==='chat'){return _0x3d3fd6['ChatWebsiteId']?operators[_0x573861[_0x52d8('0x6b')]](Number(_0x573861[_0x52d8('0x6c')]),_0x3d3fd6['ChatWebsiteId']):![];}else{return _0x3d3fd6[_[_0x52d8('0x6d')](_0x5b9ecc)+_0x52d8('0x6e')]?operators[_0x573861[_0x52d8('0x6b')]](Number(_0x573861[_0x52d8('0x6c')]),_0x3d3fd6[_[_0x52d8('0x6d')](_0x5b9ecc)+'AccountId']):![];}}break;case'interaction':case _0x52d8('0x6f'):if(_0x3d3fd6[_0x52d8('0x65')]===_0x5b9ecc){return _0x3d3fd6[_0x52d8('0x70')]?operators[_0x573861[_0x52d8('0x6b')]](_0x573861[_0x52d8('0x6c')],_0x3d3fd6[_0x52d8('0x70')]):![];}break;case _0x52d8('0x5f'):return _0x3d3fd6[_0x52d8('0x5f')]?operators[_0x573861[_0x52d8('0x6b')]](_0x573861[_0x52d8('0x6c')],_0x3d3fd6[_0x52d8('0x5f')]):![];case _0x52d8('0x71'):return _0x3d3fd6[_0x52d8('0x72')]?operators[_0x573861['operator']](_0x573861['value'],_0x3d3fd6['membername']):![];case _0x52d8('0x73'):return _0x3d3fd6[_0x52d8('0x73')]?operators[_0x573861[_0x52d8('0x6b')]](_0x573861[_0x52d8('0x6c')],_0x3d3fd6[_0x52d8('0x73')]):![];case _0x52d8('0x60'):return _0x3d3fd6[_0x52d8('0x60')]?operators[_0x573861[_0x52d8('0x6b')]](_0x573861[_0x52d8('0x6c')],_0x3d3fd6['routeId']):![];case'mailSubstatus':if(_0x573861[_0x52d8('0x6c')]==='null')_0x573861[_0x52d8('0x6c')]=null;return typeof _0x3d3fd6[_0x52d8('0x74')]!==_0x52d8('0x75')?operators[_0x573861[_0x52d8('0x6b')]](_0x573861[_0x52d8('0x6c')],_0x3d3fd6[_0x52d8('0x74')]):![];case _0x52d8('0x76'):if(_0x3d3fd6[_0x52d8('0x65')]===_0x5b9ecc){return _0x573861['value']===_0x52d8('0x77')&&_0x573861[_0x52d8('0x6b')]===_0x52d8('0x78')?!![]:![];}break;}return![];};};module[_0x52d8('0x79')]=Trigger;