4901d682840bb0169f7a69f7c7a1bc3465b51357
[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 _0xa547=['busy','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','util','mustache','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','socket.io-emitter','name','emit','user:save','split','\x20interaction','account','notificationSound','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','format','[%s][QUEUE]\x20%s','notification:%s','save','remove','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable'];(function(_0x3673fc,_0x4b2872){var _0x101dca=function(_0x2e1196){while(--_0x2e1196){_0x3673fc['push'](_0x3673fc['shift']());}};_0x101dca(++_0x4b2872);}(_0xa547,0xb0));var _0x7a54=function(_0x497537,_0xea98a6){_0x497537=_0x497537-0x0;var _0x1f1401=_0xa547[_0x497537];return _0x1f1401;};'use strict';var _=require('lodash');var util=require(_0x7a54('0x0'));var utils=require('../utils');var Mustache=require(_0x7a54('0x1'));var Redis=require('ioredis');var config=require(_0x7a54('0x2'));var logger=require(_0x7a54('0x3'))(_0x7a54('0x4'));config[_0x7a54('0x5')]=_[_0x7a54('0x6')](config[_0x7a54('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x7a54('0x7'))(new Redis(config[_0x7a54('0x5')]));function emit(_0xdeaa1c,_0x3f5dd7,_0x47c987){io['to'](_0xdeaa1c)['emit'](_0x3f5dd7,_0x47c987);}function sendNotification(_0xc88c16,_0x279e99,_0x97f971,_0x2b9188,_0x226d36,_0x5124bb){io['to'](util['format']('user:%s',_0x2b9188[_0x7a54('0x8')]))[_0x7a54('0x9')](_0x7a54('0xa'),_0x2b9188);var _0xba5cd4=_0x5124bb||{};var _0x30cbba=_0x97f971[_0x7a54('0xb')]('.');var _0x232a2f={'uniqueid':_0x279e99,'channel':_0x30cbba[0x0],'id':_0x30cbba[0x1],'title':_0x30cbba[0x0]+_0x7a54('0xc'),'interactionId':_0x30cbba[0x2],'queue':_0x226d36?_0x226d36[_0x7a54('0x8')]:null,'sound':_0xba5cd4[_0x7a54('0xd')][_0x7a54('0xe')],'shake':_0xba5cd4[_0x7a54('0xd')]['notificationShake']};try{if(!_0xba5cd4[_0x7a54('0xf')]){_0xba5cd4[_0x7a54('0xf')]={};}if(_0x226d36){_0xba5cd4[_0x7a54('0xf')][_0x7a54('0x10')]=_0x226d36;}else if(_0xba5cd4['body']['queue']){delete _0xba5cd4['body']['queue'];}_0x232a2f[_0x7a54('0x11')]=utils[_0x7a54('0x12')](_0xba5cd4['account'][_0x7a54('0x13')],_0xba5cd4);}catch(_0x5f36e8){_0x232a2f[_0x7a54('0x11')]=_0x7a54('0x14');logger['error'](util[_0x7a54('0x15')](_0x7a54('0x16'),_0x279e99,_0x5f36e8['message']));}io['to'](util[_0x7a54('0x15')]('user:%s',_0x2b9188[_0x7a54('0x8')]))[_0x7a54('0x9')](util[_0x7a54('0x15')](_0x7a54('0x17'),_0xc88c16?_0x7a54('0x18'):_0x7a54('0x19')),_0x232a2f);}function writeLog(_0x11bc93,_0x3c2b51,_0x47edf0){return logger[_0x7a54('0x1a')](util['format'](_0x7a54('0x1b'),_0x11bc93,_0x3c2b51[_0x7a54('0x8')],_0x47edf0));}exports[_0x7a54('0x1c')]=function(_0x2cd182,_0xb67dc4,_0x3e4d04,_0x2c4600){if(_0xb67dc4[_0x7a54('0x1d')]){writeLog(_0x2cd182,_0xb67dc4,'BUSY');return![];}if(!_0xb67dc4[_0x7a54('0x1e')]){writeLog(_0x2cd182,_0xb67dc4,_0x7a54('0x1f'));return![];}if(_0xb67dc4[_0x3e4d04+_0x7a54('0x20')]){writeLog(_0x2cd182,_0xb67dc4,_0x7a54('0x21'));return![];}if(_0x2c4600&&_0xb67dc4[_0x7a54('0x22')](_0x3e4d04+_0x7a54('0x23'))&&_0xb67dc4['hasOwnProperty'](_0x3e4d04+_0x7a54('0x24'))){if(_0xb67dc4[_0x3e4d04+_0x7a54('0x23')]>0x0&&_0xb67dc4[_0x3e4d04+_0x7a54('0x24')]>=_0xb67dc4[_0x3e4d04+_0x7a54('0x23')]){writeLog(_0x2cd182,_0xb67dc4,_0x3e4d04[_0x7a54('0x25')]()+_0x7a54('0x26'));return![];}}return!![];};exports[_0x7a54('0x27')]=function(_0x150577,_0x158c91,_0xd56d37,_0x3cbf5a,_0x280a70){return sendNotification(!![],_0x150577,_0x158c91,_0xd56d37,_0x3cbf5a,_0x280a70);};exports[_0x7a54('0x28')]=function(_0x1a64fb,_0xf988e6,_0x3d58ee,_0x1ffe5a,_0x3e6f14){return sendNotification(![],_0x1a64fb,_0xf988e6,_0x3d58ee,_0x1ffe5a,_0x3e6f14);};exports['writeLog']=writeLog;