Built motion from commit c116dc8b.|2.6.30
[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 _0x2a84=['remove','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','Pause','PAUSE','hasOwnProperty','CurrentCapacity','Capacity','toUpperCase','\x20MAXCAPACITY','hideNotification','checkWaitingNotifications','interaction','UserId','some','channel','QueuesWaitingInteractions','capitalize','InteractionId','agents','WaitingInteractions','saveWaitingNotification','message','removeWaitingNotification','lodash','util','ioredis','../../../../../config/environment','../../../../../config/logger','redis','localhost','socket.io-emitter','split','name','account','notificationSound','body','queue','msg','getMustacheRender','notificationTemplate','error','format','[%s][QUEUE]\x20%s','user:%s','emit','notification:%s','save'];(function(_0x4b4a58,_0x271f16){var _0x161eb5=function(_0x45e117){while(--_0x45e117){_0x4b4a58['push'](_0x4b4a58['shift']());}};_0x161eb5(++_0x271f16);}(_0x2a84,0x170));var _0x42a8=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2a84[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x42a8('0x0'));var util=require(_0x42a8('0x1'));var utils=require('../utils');var Redis=require(_0x42a8('0x2'));var config=require(_0x42a8('0x3'));var logger=require(_0x42a8('0x4'))('routing');config[_0x42a8('0x5')]=_['defaults'](config[_0x42a8('0x5')],{'host':_0x42a8('0x6'),'port':0x18eb});var io=require(_0x42a8('0x7'))(new Redis(config['redis']));function sendNotification(_0x593b3a,_0x4b17b7,_0x434dc9,_0x10c2fe,_0x4ff8e0,_0x2aa872){var _0x454118=_0x2aa872||{};var _0x5b93ac=_0x434dc9[_0x42a8('0x8')]('.');var _0x29fc29={'uniqueid':_0x4b17b7,'channel':_0x5b93ac[0x0],'id':_0x5b93ac[0x1],'title':_0x5b93ac[0x0]+'\x20interaction','interactionId':_0x5b93ac[0x2],'queue':_0x4ff8e0?_0x4ff8e0[_0x42a8('0x9')]:null,'sound':_0x454118[_0x42a8('0xa')][_0x42a8('0xb')],'shake':_0x454118['account']['notificationShake']};try{if(!_0x454118[_0x42a8('0xc')]){_0x454118['body']={};}if(_0x4ff8e0){_0x454118[_0x42a8('0xc')]['queue']=_0x4ff8e0;}else if(_0x454118['body'][_0x42a8('0xd')]){delete _0x454118[_0x42a8('0xc')][_0x42a8('0xd')];}_0x29fc29[_0x42a8('0xe')]=utils[_0x42a8('0xf')](_0x454118[_0x42a8('0xa')][_0x42a8('0x10')],_0x454118);}catch(_0x156205){_0x29fc29['msg']='I\x20can\x27t\x20render\x20your\x20template';logger[_0x42a8('0x11')](util[_0x42a8('0x12')](_0x42a8('0x13'),_0x4b17b7,_0x156205['message']));}io['to'](util[_0x42a8('0x12')](_0x42a8('0x14'),_0x10c2fe[_0x42a8('0x9')]))[_0x42a8('0x15')](util[_0x42a8('0x12')](_0x42a8('0x16'),_0x593b3a?_0x42a8('0x17'):_0x42a8('0x18')),_0x29fc29);}function writeLog(_0x15105d,_0x5b6241,_0x509b0a){return logger['debug'](util[_0x42a8('0x12')](_0x42a8('0x19'),_0x15105d,_0x5b6241[_0x42a8('0x9')],_0x509b0a));}exports[_0x42a8('0x1a')]=function(_0x1e4de9,_0x43ca95,_0x178019,_0x4da729){if(_0x43ca95[_0x42a8('0x1b')]){writeLog(_0x1e4de9,_0x43ca95,'BUSY');return![];}if(!_0x43ca95['online']){writeLog(_0x1e4de9,_0x43ca95,'OFFLINE');return![];}if(_0x43ca95[_0x178019+_0x42a8('0x1c')]){writeLog(_0x1e4de9,_0x43ca95,_0x42a8('0x1d'));return![];}if(_0x4da729&&_0x43ca95[_0x42a8('0x1e')](_0x178019+'Capacity')&&_0x43ca95[_0x42a8('0x1e')](_0x178019+'CurrentCapacity')){if(_0x43ca95[_0x178019+'Capacity']>0x0&&_0x43ca95[_0x178019+_0x42a8('0x1f')]>=_0x43ca95[_0x178019+_0x42a8('0x20')]){writeLog(_0x1e4de9,_0x43ca95,_0x178019[_0x42a8('0x21')]()+_0x42a8('0x22'));return![];}}return!![];};exports['showNotification']=function(_0x69df6b,_0x4aa424,_0x44576f,_0x14ce47,_0x386e82){return sendNotification(!![],_0x69df6b,_0x4aa424,_0x44576f,_0x14ce47,_0x386e82);};exports[_0x42a8('0x23')]=function(_0x1906e4,_0x897dff,_0x542956,_0x147ee5,_0x5870d4){return sendNotification(![],_0x1906e4,_0x897dff,_0x542956,_0x147ee5,_0x5870d4);};exports[_0x42a8('0x24')]=function(_0x514808,_0x369bd8,_0x30e3f2){var _0x3fc979=_0x369bd8[_0x42a8('0x25')][_0x42a8('0x26')];if(!_0x3fc979&&_0x30e3f2){_0x3fc979=_0x30e3f2['id'];}var _0x43a38e=_[_0x42a8('0x27')](_0x514808[_0x369bd8[_0x42a8('0x28')]+_0x42a8('0x29')],function(_0x399ada){var _0x1f84c1=_[_0x42a8('0x2a')](_0x369bd8['channel'])+_0x42a8('0x2b');return _0x399ada[_0x1f84c1]===_0x369bd8[_0x42a8('0x25')]['id'];});if(!_0x43a38e&&_0x3fc979&&_0x514808[_0x42a8('0x2c')][_0x3fc979]){_0x43a38e=_[_0x42a8('0x27')](_0x514808[_0x42a8('0x2c')][_0x3fc979][_0x369bd8[_0x42a8('0x28')]+_0x42a8('0x2d')],function(_0x2b7d76){return _0x2b7d76['id']===_0x369bd8[_0x42a8('0x25')]['id'];});}return _0x43a38e;};exports[_0x42a8('0x2e')]=function(_0x5afbe4,_0x454f5c,_0x4f5d14,_0x357438){if(_0x4f5d14&&_0x4f5d14['id']&&_0x5afbe4[_0x42a8('0x2c')]&&_0x5afbe4['agents'][_0x4f5d14['id']]){_0x5afbe4[_0x42a8('0x2c')][_0x4f5d14['id']][_0x357438+_0x42a8('0x2d')][_0x454f5c[_0x42a8('0x2f')]['id']]={'id':_0x454f5c[_0x42a8('0x25')]['id']};}};exports[_0x42a8('0x30')]=function(_0x5466f8,_0x2a155e,_0x247604,_0x551e5d){if(_0x247604&&_0x247604['id']&&_0x5466f8[_0x42a8('0x2c')]&&_0x5466f8[_0x42a8('0x2c')][_0x247604['id']]){delete _0x5466f8[_0x42a8('0x2c')][_0x247604['id']][_0x551e5d+'WaitingInteractions'][_0x2a155e[_0x42a8('0x2f')]['id']];}};exports['writeLog']=writeLog;