Built motion from commit 449495f6.|2.6.27
[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 _0x9672=['notificationSound','body','queue','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','user:%s','emit','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','BUSY','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','hideNotification','checkWaitingNotifications','interaction','UserId','some','channel','capitalize','InteractionId','agents','WaitingInteractions','saveWaitingNotification','message','writeLog','lodash','util','ioredis','../../../../../config/environment','../../../../../config/logger','routing','defaults','redis','localhost','\x20interaction','name','account'];(function(_0x92b3c2,_0x14a2b1){var _0x5227c3=function(_0x35d374){while(--_0x35d374){_0x92b3c2['push'](_0x92b3c2['shift']());}};_0x5227c3(++_0x14a2b1);}(_0x9672,0xee));var _0x2967=function(_0x408c72,_0x130bee){_0x408c72=_0x408c72-0x0;var _0x30d195=_0x9672[_0x408c72];return _0x30d195;};'use strict';var _=require(_0x2967('0x0'));var util=require(_0x2967('0x1'));var utils=require('../utils');var Redis=require(_0x2967('0x2'));var config=require(_0x2967('0x3'));var logger=require(_0x2967('0x4'))(_0x2967('0x5'));config['redis']=_[_0x2967('0x6')](config[_0x2967('0x7')],{'host':_0x2967('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function sendNotification(_0x24424d,_0x355e82,_0x1aa9a5,_0x77f846,_0x3bcd7e,_0xf353b6){var _0x45ebae=_0xf353b6||{};var _0x30e72f=_0x1aa9a5['split']('.');var _0x398041={'uniqueid':_0x355e82,'channel':_0x30e72f[0x0],'id':_0x30e72f[0x1],'title':_0x30e72f[0x0]+_0x2967('0x9'),'interactionId':_0x30e72f[0x2],'queue':_0x3bcd7e?_0x3bcd7e[_0x2967('0xa')]:null,'sound':_0x45ebae[_0x2967('0xb')][_0x2967('0xc')],'shake':_0x45ebae[_0x2967('0xb')]['notificationShake']};try{if(!_0x45ebae[_0x2967('0xd')]){_0x45ebae['body']={};}if(_0x3bcd7e){_0x45ebae[_0x2967('0xd')]['queue']=_0x3bcd7e;}else if(_0x45ebae[_0x2967('0xd')][_0x2967('0xe')]){delete _0x45ebae['body'][_0x2967('0xe')];}_0x398041['msg']=utils[_0x2967('0xf')](_0x45ebae[_0x2967('0xb')][_0x2967('0x10')],_0x45ebae);}catch(_0x52d5c0){_0x398041['msg']=_0x2967('0x11');logger[_0x2967('0x12')](util[_0x2967('0x13')]('[%s][QUEUE]\x20%s',_0x355e82,_0x52d5c0['message']));}io['to'](util[_0x2967('0x13')](_0x2967('0x14'),_0x77f846[_0x2967('0xa')]))[_0x2967('0x15')](util[_0x2967('0x13')](_0x2967('0x16'),_0x24424d?_0x2967('0x17'):_0x2967('0x18')),_0x398041);}function writeLog(_0x209f45,_0xc9162a,_0x57bf2c){return logger[_0x2967('0x19')](util[_0x2967('0x13')](_0x2967('0x1a'),_0x209f45,_0xc9162a[_0x2967('0xa')],_0x57bf2c));}exports['isAgentAvailable']=function(_0x321e36,_0x1cb5e4,_0x33bb91,_0x56a840){if(_0x1cb5e4['busy']){writeLog(_0x321e36,_0x1cb5e4,_0x2967('0x1b'));return![];}if(!_0x1cb5e4[_0x2967('0x1c')]){writeLog(_0x321e36,_0x1cb5e4,_0x2967('0x1d'));return![];}if(_0x1cb5e4[_0x33bb91+_0x2967('0x1e')]){writeLog(_0x321e36,_0x1cb5e4,_0x2967('0x1f'));return![];}if(_0x56a840&&_0x1cb5e4[_0x2967('0x20')](_0x33bb91+_0x2967('0x21'))&&_0x1cb5e4[_0x2967('0x20')](_0x33bb91+_0x2967('0x22'))){if(_0x1cb5e4[_0x33bb91+'Capacity']>0x0&&_0x1cb5e4[_0x33bb91+_0x2967('0x22')]>=_0x1cb5e4[_0x33bb91+_0x2967('0x21')]){writeLog(_0x321e36,_0x1cb5e4,_0x33bb91[_0x2967('0x23')]()+_0x2967('0x24'));return![];}}return!![];};exports['showNotification']=function(_0x42acb3,_0x4327a5,_0x524ab1,_0x153d63,_0x2f9d9f){return sendNotification(!![],_0x42acb3,_0x4327a5,_0x524ab1,_0x153d63,_0x2f9d9f);};exports[_0x2967('0x25')]=function(_0xef5d7f,_0x2355f2,_0x36c1d9,_0x1a3d42,_0x4e0603){return sendNotification(![],_0xef5d7f,_0x2355f2,_0x36c1d9,_0x1a3d42,_0x4e0603);};exports[_0x2967('0x26')]=function(_0x2a0ad8,_0x1eefcb,_0x57cee6){var _0x2a04e6=_0x1eefcb[_0x2967('0x27')][_0x2967('0x28')];if(!_0x2a04e6&&_0x57cee6){_0x2a04e6=_0x57cee6['id'];}var _0x48a49b=_[_0x2967('0x29')](_0x2a0ad8[_0x1eefcb[_0x2967('0x2a')]+'QueuesWaitingInteractions'],function(_0x1ee7cb){var _0x45c7fd=_[_0x2967('0x2b')](_0x1eefcb['channel'])+_0x2967('0x2c');return _0x1ee7cb[_0x45c7fd]===_0x1eefcb[_0x2967('0x27')]['id'];});if(!_0x48a49b&&_0x2a04e6&&_0x2a0ad8[_0x2967('0x2d')][_0x2a04e6]){_0x48a49b=_['some'](_0x2a0ad8[_0x2967('0x2d')][_0x2a04e6][_0x1eefcb[_0x2967('0x2a')]+_0x2967('0x2e')],function(_0x163786){return _0x163786['id']===_0x1eefcb[_0x2967('0x27')]['id'];});}return _0x48a49b;};exports[_0x2967('0x2f')]=function(_0x50bd99,_0xb19220,_0x3bcc08,_0x390a62){if(_0x3bcc08&&_0x3bcc08['id']&&_0x50bd99[_0x2967('0x2d')]&&_0x50bd99[_0x2967('0x2d')][_0x3bcc08['id']]){_0x50bd99[_0x2967('0x2d')][_0x3bcc08['id']][_0x390a62+_0x2967('0x2e')][_0xb19220[_0x2967('0x30')]['id']]={'id':_0xb19220[_0x2967('0x27')]['id']};}};exports['removeWaitingNotification']=function(_0x4e9a73,_0x15b04b,_0x421ee8,_0x32cd36){if(_0x421ee8&&_0x421ee8['id']&&_0x4e9a73[_0x2967('0x2d')]&&_0x4e9a73['agents'][_0x421ee8['id']]){delete _0x4e9a73[_0x2967('0x2d')][_0x421ee8['id']][_0x32cd36+'WaitingInteractions'][_0x15b04b[_0x2967('0x30')]['id']];}};exports[_0x2967('0x31')]=writeLog;