Built motion from commit da617fac.|2.6.6
[motion2.git] / server / services / routing / server / applications / strategy / util.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 _0xeff8=['online','OFFLINE','Pause','PAUSE','Capacity','hasOwnProperty','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','lodash','util','ioredis','../../../../../config/environment','../../../../../config/logger','redis','defaults','localhost','format','user:%s','user:save','\x20interaction','account','notificationSound','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','message','name','emit','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','BUSY'];(function(_0x10bcc4,_0x4400e2){var _0x2da988=function(_0x2ee849){while(--_0x2ee849){_0x10bcc4['push'](_0x10bcc4['shift']());}};_0x2da988(++_0x4400e2);}(_0xeff8,0x186));var _0x8eff=function(_0x490be3,_0xf0fca3){_0x490be3=_0x490be3-0x0;var _0x3f5140=_0xeff8[_0x490be3];return _0x3f5140;};'use strict';var _=require(_0x8eff('0x0'));var util=require(_0x8eff('0x1'));var utils=require('../utils');var Redis=require(_0x8eff('0x2'));var config=require(_0x8eff('0x3'));var logger=require(_0x8eff('0x4'))('routing');config[_0x8eff('0x5')]=_[_0x8eff('0x6')](config[_0x8eff('0x5')],{'host':_0x8eff('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x8eff('0x5')]));function sendNotification(_0xb54063,_0x3409bc,_0x323b2,_0x491f01,_0x3fb9ee,_0x19557f){io['to'](util[_0x8eff('0x8')](_0x8eff('0x9'),_0x491f01['name']))['emit'](_0x8eff('0xa'),_0x491f01);var _0x430b45=_0x19557f||{};var _0xb2117e=_0x323b2['split']('.');var _0x2a87d2={'uniqueid':_0x3409bc,'channel':_0xb2117e[0x0],'id':_0xb2117e[0x1],'title':_0xb2117e[0x0]+_0x8eff('0xb'),'interactionId':_0xb2117e[0x2],'queue':_0x3fb9ee?_0x3fb9ee['name']:null,'sound':_0x430b45[_0x8eff('0xc')][_0x8eff('0xd')],'shake':_0x430b45['account']['notificationShake']};try{if(!_0x430b45[_0x8eff('0xe')]){_0x430b45[_0x8eff('0xe')]={};}if(_0x3fb9ee){_0x430b45[_0x8eff('0xe')][_0x8eff('0xf')]=_0x3fb9ee;}else if(_0x430b45[_0x8eff('0xe')]['queue']){delete _0x430b45[_0x8eff('0xe')][_0x8eff('0xf')];}_0x2a87d2[_0x8eff('0x10')]=utils[_0x8eff('0x11')](_0x430b45[_0x8eff('0xc')][_0x8eff('0x12')],_0x430b45);}catch(_0x16202e){_0x2a87d2[_0x8eff('0x10')]=_0x8eff('0x13');logger[_0x8eff('0x14')](util[_0x8eff('0x8')]('[%s][QUEUE]\x20%s',_0x3409bc,_0x16202e[_0x8eff('0x15')]));}io['to'](util[_0x8eff('0x8')](_0x8eff('0x9'),_0x491f01[_0x8eff('0x16')]))[_0x8eff('0x17')](util[_0x8eff('0x8')](_0x8eff('0x18'),_0xb54063?_0x8eff('0x19'):_0x8eff('0x1a')),_0x2a87d2);}function writeLog(_0x198ee9,_0x453c7a,_0x1b65f9){return logger[_0x8eff('0x1b')](util[_0x8eff('0x8')](_0x8eff('0x1c'),_0x198ee9,_0x453c7a[_0x8eff('0x16')],_0x1b65f9));}exports['isAgentAvailable']=function(_0x1ca2e6,_0x4d3e84,_0x5a2492,_0x1c4ad3){if(_0x4d3e84['busy']){writeLog(_0x1ca2e6,_0x4d3e84,_0x8eff('0x1d'));return![];}if(!_0x4d3e84[_0x8eff('0x1e')]){writeLog(_0x1ca2e6,_0x4d3e84,_0x8eff('0x1f'));return![];}if(_0x4d3e84[_0x5a2492+_0x8eff('0x20')]){writeLog(_0x1ca2e6,_0x4d3e84,_0x8eff('0x21'));return![];}if(_0x1c4ad3&&_0x4d3e84['hasOwnProperty'](_0x5a2492+_0x8eff('0x22'))&&_0x4d3e84[_0x8eff('0x23')](_0x5a2492+'CurrentCapacity')){if(_0x4d3e84[_0x5a2492+_0x8eff('0x22')]>0x0&&_0x4d3e84[_0x5a2492+_0x8eff('0x24')]>=_0x4d3e84[_0x5a2492+_0x8eff('0x22')]){writeLog(_0x1ca2e6,_0x4d3e84,_0x5a2492[_0x8eff('0x25')]()+_0x8eff('0x26'));return![];}}return!![];};exports[_0x8eff('0x27')]=function(_0x6359df,_0x2e8067,_0x516173,_0x3e1607,_0x323ffa){return sendNotification(!![],_0x6359df,_0x2e8067,_0x516173,_0x3e1607,_0x323ffa);};exports[_0x8eff('0x28')]=function(_0xb88ce9,_0x45803c,_0x85cccb,_0x4cc146,_0x4ed3b8){return sendNotification(![],_0xb88ce9,_0x45803c,_0x85cccb,_0x4cc146,_0x4ed3b8);};exports[_0x8eff('0x29')]=writeLog;