Built motion from commit f0a64034.|2.6.11
[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 _0x02bc=['hideNotification','checkWaitingNotifications','UserId','some','capitalize','InteractionId','agents','channel','WaitingInteractions','interaction','saveWaitingNotification','removeWaitingNotification','lodash','util','ioredis','../../../../../config/environment','../../../../../config/logger','redis','defaults','localhost','socket.io-emitter','user:%s','emit','user:save','split','\x20interaction','name','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','message','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','PAUSE','Capacity','hasOwnProperty','CurrentCapacity','toUpperCase'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x02bc,0x1bc));var _0xc02b=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x02bc[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require(_0xc02b('0x0'));var util=require(_0xc02b('0x1'));var utils=require('../utils');var Redis=require(_0xc02b('0x2'));var config=require(_0xc02b('0x3'));var logger=require(_0xc02b('0x4'))('routing');config[_0xc02b('0x5')]=_[_0xc02b('0x6')](config[_0xc02b('0x5')],{'host':_0xc02b('0x7'),'port':0x18eb});var io=require(_0xc02b('0x8'))(new Redis(config[_0xc02b('0x5')]));function sendNotification(_0x1a834c,_0x56234f,_0x567bd4,_0x550165,_0x3649c6,_0x33df55){io['to'](util['format'](_0xc02b('0x9'),_0x550165['name']))[_0xc02b('0xa')](_0xc02b('0xb'),_0x550165);var _0x58db9d=_0x33df55||{};var _0x541efb=_0x567bd4[_0xc02b('0xc')]('.');var _0xb83e84={'uniqueid':_0x56234f,'channel':_0x541efb[0x0],'id':_0x541efb[0x1],'title':_0x541efb[0x0]+_0xc02b('0xd'),'interactionId':_0x541efb[0x2],'queue':_0x3649c6?_0x3649c6[_0xc02b('0xe')]:null,'sound':_0x58db9d[_0xc02b('0xf')][_0xc02b('0x10')],'shake':_0x58db9d['account'][_0xc02b('0x11')]};try{if(!_0x58db9d[_0xc02b('0x12')]){_0x58db9d[_0xc02b('0x12')]={};}if(_0x3649c6){_0x58db9d['body']['queue']=_0x3649c6;}else if(_0x58db9d[_0xc02b('0x12')][_0xc02b('0x13')]){delete _0x58db9d[_0xc02b('0x12')][_0xc02b('0x13')];}_0xb83e84[_0xc02b('0x14')]=utils[_0xc02b('0x15')](_0x58db9d[_0xc02b('0xf')][_0xc02b('0x16')],_0x58db9d);}catch(_0x4a97d2){_0xb83e84[_0xc02b('0x14')]=_0xc02b('0x17');logger[_0xc02b('0x18')](util[_0xc02b('0x19')]('[%s][QUEUE]\x20%s',_0x56234f,_0x4a97d2[_0xc02b('0x1a')]));}io['to'](util[_0xc02b('0x19')](_0xc02b('0x9'),_0x550165[_0xc02b('0xe')]))[_0xc02b('0xa')](util[_0xc02b('0x19')](_0xc02b('0x1b'),_0x1a834c?_0xc02b('0x1c'):_0xc02b('0x1d')),_0xb83e84);}function writeLog(_0x1c970c,_0x424a12,_0x197976){return logger[_0xc02b('0x1e')](util[_0xc02b('0x19')](_0xc02b('0x1f'),_0x1c970c,_0x424a12[_0xc02b('0xe')],_0x197976));}exports[_0xc02b('0x20')]=function(_0x3c4e6f,_0x5d20de,_0x5983b5,_0x563b08){if(_0x5d20de[_0xc02b('0x21')]){writeLog(_0x3c4e6f,_0x5d20de,_0xc02b('0x22'));return![];}if(!_0x5d20de[_0xc02b('0x23')]){writeLog(_0x3c4e6f,_0x5d20de,_0xc02b('0x24'));return![];}if(_0x5d20de[_0x5983b5+'Pause']){writeLog(_0x3c4e6f,_0x5d20de,_0xc02b('0x25'));return![];}if(_0x563b08&&_0x5d20de['hasOwnProperty'](_0x5983b5+_0xc02b('0x26'))&&_0x5d20de[_0xc02b('0x27')](_0x5983b5+'CurrentCapacity')){if(_0x5d20de[_0x5983b5+_0xc02b('0x26')]>0x0&&_0x5d20de[_0x5983b5+_0xc02b('0x28')]>=_0x5d20de[_0x5983b5+'Capacity']){writeLog(_0x3c4e6f,_0x5d20de,_0x5983b5[_0xc02b('0x29')]()+'\x20MAXCAPACITY');return![];}}return!![];};exports['showNotification']=function(_0x141f50,_0xb0a21f,_0x46c792,_0x5f54a5,_0x1fb11f){return sendNotification(!![],_0x141f50,_0xb0a21f,_0x46c792,_0x5f54a5,_0x1fb11f);};exports[_0xc02b('0x2a')]=function(_0x27883d,_0x41683f,_0x5cee4a,_0x5f50aa,_0x472276){return sendNotification(![],_0x27883d,_0x41683f,_0x5cee4a,_0x5f50aa,_0x472276);};exports[_0xc02b('0x2b')]=function(_0x2f7e1a,_0x3e38b9,_0x9e0e17){var _0xc60a90=_0x3e38b9['interaction'][_0xc02b('0x2c')];if(!_0xc60a90&&_0x9e0e17){_0xc60a90=_0x9e0e17['id'];}var _0x23a5c7=_[_0xc02b('0x2d')](_0x2f7e1a[_0x3e38b9['channel']+'QueuesWaitingInteractions'],function(_0x3adced){var _0x1b3083=_[_0xc02b('0x2e')](_0x3e38b9['channel'])+_0xc02b('0x2f');return _0x3adced[_0x1b3083]===_0x3e38b9['interaction']['id'];});if(!_0x23a5c7&&_0xc60a90){_0x23a5c7=_['some'](_0x2f7e1a[_0xc02b('0x30')][_0xc60a90][_0x3e38b9[_0xc02b('0x31')]+_0xc02b('0x32')],function(_0x9f2757){return _0x9f2757['id']===_0x3e38b9[_0xc02b('0x33')]['id'];});}return _0x23a5c7;};exports[_0xc02b('0x34')]=function(_0x4207e6,_0x41cd5e,_0x1cecda,_0x455637){_0x4207e6[_0xc02b('0x30')][_0x1cecda['id']][_0x455637+'WaitingInteractions'][_0x41cd5e['message']['id']]={'id':_0x41cd5e[_0xc02b('0x33')]['id']};};exports[_0xc02b('0x35')]=function(_0x350ae5,_0xed694a,_0x1cebbe,_0x597884){delete _0x350ae5['agents'][_0x1cebbe['id']][_0x597884+_0xc02b('0x32')][_0xed694a[_0xc02b('0x1a')]['id']];};exports['writeLog']=writeLog;