Built motion from commit 1fa89557.|2.6.10
[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 _0x7e29=['defaults','localhost','socket.io-emitter','user:%s','emit','user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','message','format','name','notification:%s','save','remove','debug','isAgentAvailable','busy','BUSY','Pause','PAUSE','Capacity','hasOwnProperty','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','checkWaitingNotifications','interaction','channel','QueuesWaitingInteractions','capitalize','InteractionId','some','agents','WaitingInteractions','saveWaitingNotification','lodash','../utils','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis'];(function(_0x3040e2,_0x485d29){var _0x4f8fd9=function(_0x34d204){while(--_0x34d204){_0x3040e2['push'](_0x3040e2['shift']());}};_0x4f8fd9(++_0x485d29);}(_0x7e29,0x95));var _0x97e2=function(_0x46fc8f,_0x33cc60){_0x46fc8f=_0x46fc8f-0x0;var _0xbf534=_0x7e29[_0x46fc8f];return _0xbf534;};'use strict';var _=require(_0x97e2('0x0'));var util=require('util');var utils=require(_0x97e2('0x1'));var Redis=require(_0x97e2('0x2'));var config=require(_0x97e2('0x3'));var logger=require(_0x97e2('0x4'))(_0x97e2('0x5'));config[_0x97e2('0x6')]=_[_0x97e2('0x7')](config[_0x97e2('0x6')],{'host':_0x97e2('0x8'),'port':0x18eb});var io=require(_0x97e2('0x9'))(new Redis(config[_0x97e2('0x6')]));function sendNotification(_0x5878b6,_0x5ed83e,_0x19961a,_0x157f1f,_0x363250,_0x9c84f9){io['to'](util['format'](_0x97e2('0xa'),_0x157f1f['name']))[_0x97e2('0xb')](_0x97e2('0xc'),_0x157f1f);var _0x4f2242=_0x9c84f9||{};var _0x3d2959=_0x19961a[_0x97e2('0xd')]('.');var _0x19c96c={'uniqueid':_0x5ed83e,'channel':_0x3d2959[0x0],'id':_0x3d2959[0x1],'title':_0x3d2959[0x0]+_0x97e2('0xe'),'interactionId':_0x3d2959[0x2],'queue':_0x363250?_0x363250['name']:null,'sound':_0x4f2242[_0x97e2('0xf')][_0x97e2('0x10')],'shake':_0x4f2242[_0x97e2('0xf')][_0x97e2('0x11')]};try{if(!_0x4f2242['body']){_0x4f2242['body']={};}if(_0x363250){_0x4f2242[_0x97e2('0x12')][_0x97e2('0x13')]=_0x363250;}else if(_0x4f2242[_0x97e2('0x12')][_0x97e2('0x13')]){delete _0x4f2242['body'][_0x97e2('0x13')];}_0x19c96c[_0x97e2('0x14')]=utils[_0x97e2('0x15')](_0x4f2242[_0x97e2('0xf')][_0x97e2('0x16')],_0x4f2242);}catch(_0x17d7f2){_0x19c96c['msg']=_0x97e2('0x17');logger['error'](util['format']('[%s][QUEUE]\x20%s',_0x5ed83e,_0x17d7f2[_0x97e2('0x18')]));}io['to'](util[_0x97e2('0x19')](_0x97e2('0xa'),_0x157f1f[_0x97e2('0x1a')]))[_0x97e2('0xb')](util[_0x97e2('0x19')](_0x97e2('0x1b'),_0x5878b6?_0x97e2('0x1c'):_0x97e2('0x1d')),_0x19c96c);}function writeLog(_0x463514,_0x753c2a,_0xbf3ca3){return logger[_0x97e2('0x1e')](util[_0x97e2('0x19')]('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x463514,_0x753c2a[_0x97e2('0x1a')],_0xbf3ca3));}exports[_0x97e2('0x1f')]=function(_0x3456a4,_0x3f7288,_0x55ef65,_0x33ad06){if(_0x3f7288[_0x97e2('0x20')]){writeLog(_0x3456a4,_0x3f7288,_0x97e2('0x21'));return![];}if(!_0x3f7288['online']){writeLog(_0x3456a4,_0x3f7288,'OFFLINE');return![];}if(_0x3f7288[_0x55ef65+_0x97e2('0x22')]){writeLog(_0x3456a4,_0x3f7288,_0x97e2('0x23'));return![];}if(_0x33ad06&&_0x3f7288['hasOwnProperty'](_0x55ef65+_0x97e2('0x24'))&&_0x3f7288[_0x97e2('0x25')](_0x55ef65+_0x97e2('0x26'))){if(_0x3f7288[_0x55ef65+'Capacity']>0x0&&_0x3f7288[_0x55ef65+_0x97e2('0x26')]>=_0x3f7288[_0x55ef65+_0x97e2('0x24')]){writeLog(_0x3456a4,_0x3f7288,_0x55ef65[_0x97e2('0x27')]()+_0x97e2('0x28'));return![];}}return!![];};exports[_0x97e2('0x29')]=function(_0x9d7b23,_0x5fd57b,_0x1ce53a,_0x33906b,_0x3d97da){return sendNotification(!![],_0x9d7b23,_0x5fd57b,_0x1ce53a,_0x33906b,_0x3d97da);};exports['hideNotification']=function(_0xa001ad,_0x2a0c93,_0x6ab377,_0x36ccd4,_0x3ec6c6){return sendNotification(![],_0xa001ad,_0x2a0c93,_0x6ab377,_0x36ccd4,_0x3ec6c6);};exports[_0x97e2('0x2a')]=function(_0x1453d1,_0x4e5c3b,_0x41fc65){var _0x242711=_0x4e5c3b[_0x97e2('0x2b')]['UserId'];if(!_0x242711&&_0x41fc65){_0x242711=_0x41fc65['id'];}var _0x573a3d=_['some'](_0x1453d1[_0x4e5c3b[_0x97e2('0x2c')]+_0x97e2('0x2d')],function(_0x594782){var _0x26b155=_[_0x97e2('0x2e')](_0x4e5c3b[_0x97e2('0x2c')])+_0x97e2('0x2f');return _0x594782[_0x26b155]===_0x4e5c3b['interaction']['id'];});if(!_0x573a3d&&_0x242711){_0x573a3d=_[_0x97e2('0x30')](_0x1453d1[_0x97e2('0x31')][_0x242711][_0x4e5c3b[_0x97e2('0x2c')]+_0x97e2('0x32')],function(_0x198e71){return _0x198e71['id']===_0x4e5c3b['interaction']['id'];});}return _0x573a3d;};exports[_0x97e2('0x33')]=function(_0x24a62b,_0x3b9fa5,_0x2f88da,_0x5ddd0b){_0x24a62b['agents'][_0x2f88da['id']][_0x5ddd0b+_0x97e2('0x32')][_0x3b9fa5['message']['id']]={'id':_0x3b9fa5[_0x97e2('0x2b')]['id']};};exports['removeWaitingNotification']=function(_0x274029,_0x31ae43,_0x127761,_0x220691){delete _0x274029[_0x97e2('0x31')][_0x127761['id']][_0x220691+'WaitingInteractions'][_0x31ae43[_0x97e2('0x18')]['id']];};exports['writeLog']=writeLog;