Built motion from commit 9d0783e6.|2.6.13
[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 _0x0af1=['account','notificationSound','notificationShake','body','msg','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','message','notification:%s','save','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','Pause','PAUSE','Capacity','hasOwnProperty','CurrentCapacity','toUpperCase','showNotification','checkWaitingNotifications','interaction','UserId','some','channel','QueuesWaitingInteractions','capitalize','InteractionId','agents','WaitingInteractions','writeLog','lodash','../utils','ioredis','../../../../../config/logger','routing','redis','defaults','localhost','socket.io-emitter','format','user:%s','name','user:save','split','\x20interaction'];(function(_0x15c12c,_0x1db663){var _0x4aaeb8=function(_0x2c9436){while(--_0x2c9436){_0x15c12c['push'](_0x15c12c['shift']());}};_0x4aaeb8(++_0x1db663);}(_0x0af1,0x8a));var _0x10af=function(_0x344cf7,_0x4a26ba){_0x344cf7=_0x344cf7-0x0;var _0x3d4c27=_0x0af1[_0x344cf7];return _0x3d4c27;};'use strict';var _=require(_0x10af('0x0'));var util=require('util');var utils=require(_0x10af('0x1'));var Redis=require(_0x10af('0x2'));var config=require('../../../../../config/environment');var logger=require(_0x10af('0x3'))(_0x10af('0x4'));config[_0x10af('0x5')]=_[_0x10af('0x6')](config['redis'],{'host':_0x10af('0x7'),'port':0x18eb});var io=require(_0x10af('0x8'))(new Redis(config[_0x10af('0x5')]));function sendNotification(_0x3776d5,_0x30b893,_0x523f11,_0x3b9b9c,_0x4e3907,_0x23f54c){io['to'](util[_0x10af('0x9')](_0x10af('0xa'),_0x3b9b9c[_0x10af('0xb')]))['emit'](_0x10af('0xc'),_0x3b9b9c);var _0x3a9de3=_0x23f54c||{};var _0x4f29ed=_0x523f11[_0x10af('0xd')]('.');var _0x251fc5={'uniqueid':_0x30b893,'channel':_0x4f29ed[0x0],'id':_0x4f29ed[0x1],'title':_0x4f29ed[0x0]+_0x10af('0xe'),'interactionId':_0x4f29ed[0x2],'queue':_0x4e3907?_0x4e3907[_0x10af('0xb')]:null,'sound':_0x3a9de3[_0x10af('0xf')][_0x10af('0x10')],'shake':_0x3a9de3['account'][_0x10af('0x11')]};try{if(!_0x3a9de3[_0x10af('0x12')]){_0x3a9de3[_0x10af('0x12')]={};}if(_0x4e3907){_0x3a9de3[_0x10af('0x12')]['queue']=_0x4e3907;}else if(_0x3a9de3[_0x10af('0x12')]['queue']){delete _0x3a9de3[_0x10af('0x12')]['queue'];}_0x251fc5['msg']=utils['getMustacheRender'](_0x3a9de3[_0x10af('0xf')]['notificationTemplate'],_0x3a9de3);}catch(_0x3a6d49){_0x251fc5[_0x10af('0x13')]=_0x10af('0x14');logger[_0x10af('0x15')](util['format'](_0x10af('0x16'),_0x30b893,_0x3a6d49[_0x10af('0x17')]));}io['to'](util[_0x10af('0x9')](_0x10af('0xa'),_0x3b9b9c[_0x10af('0xb')]))['emit'](util[_0x10af('0x9')](_0x10af('0x18'),_0x3776d5?_0x10af('0x19'):'remove'),_0x251fc5);}function writeLog(_0x26ae70,_0x531987,_0x4d8ce6){return logger[_0x10af('0x1a')](util[_0x10af('0x9')](_0x10af('0x1b'),_0x26ae70,_0x531987[_0x10af('0xb')],_0x4d8ce6));}exports[_0x10af('0x1c')]=function(_0xe3e8b9,_0x9b2507,_0x2db479,_0x1afed9){if(_0x9b2507[_0x10af('0x1d')]){writeLog(_0xe3e8b9,_0x9b2507,_0x10af('0x1e'));return![];}if(!_0x9b2507[_0x10af('0x1f')]){writeLog(_0xe3e8b9,_0x9b2507,_0x10af('0x20'));return![];}if(_0x9b2507[_0x2db479+_0x10af('0x21')]){writeLog(_0xe3e8b9,_0x9b2507,_0x10af('0x22'));return![];}if(_0x1afed9&&_0x9b2507['hasOwnProperty'](_0x2db479+_0x10af('0x23'))&&_0x9b2507[_0x10af('0x24')](_0x2db479+_0x10af('0x25'))){if(_0x9b2507[_0x2db479+_0x10af('0x23')]>0x0&&_0x9b2507[_0x2db479+_0x10af('0x25')]>=_0x9b2507[_0x2db479+_0x10af('0x23')]){writeLog(_0xe3e8b9,_0x9b2507,_0x2db479[_0x10af('0x26')]()+'\x20MAXCAPACITY');return![];}}return!![];};exports[_0x10af('0x27')]=function(_0x26fb28,_0x55a9a5,_0x435ecb,_0x8c466c,_0xf89cfd){return sendNotification(!![],_0x26fb28,_0x55a9a5,_0x435ecb,_0x8c466c,_0xf89cfd);};exports['hideNotification']=function(_0xb51f7d,_0x34b56e,_0x32b2a1,_0x58e5bb,_0xd1e05f){return sendNotification(![],_0xb51f7d,_0x34b56e,_0x32b2a1,_0x58e5bb,_0xd1e05f);};exports[_0x10af('0x28')]=function(_0x5769cd,_0x5c138f,_0x311014){var _0x6d72a8=_0x5c138f[_0x10af('0x29')][_0x10af('0x2a')];if(!_0x6d72a8&&_0x311014){_0x6d72a8=_0x311014['id'];}var _0x27ffa7=_[_0x10af('0x2b')](_0x5769cd[_0x5c138f[_0x10af('0x2c')]+_0x10af('0x2d')],function(_0x2f6442){var _0xc6af57=_[_0x10af('0x2e')](_0x5c138f[_0x10af('0x2c')])+_0x10af('0x2f');return _0x2f6442[_0xc6af57]===_0x5c138f['interaction']['id'];});if(!_0x27ffa7&&_0x6d72a8){_0x27ffa7=_['some'](_0x5769cd[_0x10af('0x30')][_0x6d72a8][_0x5c138f['channel']+_0x10af('0x31')],function(_0x378970){return _0x378970['id']===_0x5c138f[_0x10af('0x29')]['id'];});}return _0x27ffa7;};exports['saveWaitingNotification']=function(_0x5970ad,_0x55d272,_0xca5013,_0x4d4a44){_0x5970ad[_0x10af('0x30')][_0xca5013['id']][_0x4d4a44+_0x10af('0x31')][_0x55d272[_0x10af('0x17')]['id']]={'id':_0x55d272[_0x10af('0x29')]['id']};};exports['removeWaitingNotification']=function(_0x2fbc9b,_0x39cdf6,_0x3d4bb8,_0x329652){delete _0x2fbc9b[_0x10af('0x30')][_0x3d4bb8['id']][_0x329652+_0x10af('0x31')][_0x39cdf6[_0x10af('0x17')]['id']];};exports[_0x10af('0x32')]=writeLog;