acb56fd326c6d551a80a2b7682412ebd8d498a2d
[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 _0xdc9c=['hasOwnProperty','CurrentCapacity','Capacity','\x20MAXCAPACITY','showNotification','hideNotification','checkWaitingNotifications','interaction','UserId','channel','QueuesWaitingInteractions','InteractionId','agents','some','WaitingInteractions','saveWaitingNotification','removeWaitingNotification','writeLog','ioredis','../../../../../config/logger','routing','redis','defaults','localhost','split','\x20interaction','name','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','format','[%s][QUEUE]\x20%s','message','emit','notification:%s','save','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','Pause'];(function(_0x1ac4da,_0x420bd1){var _0x2affed=function(_0x4f67d1){while(--_0x4f67d1){_0x1ac4da['push'](_0x1ac4da['shift']());}};_0x2affed(++_0x420bd1);}(_0xdc9c,0xe2));var _0xcdc9=function(_0x83b6fd,_0x1bfdd4){_0x83b6fd=_0x83b6fd-0x0;var _0x160598=_0xdc9c[_0x83b6fd];return _0x160598;};'use strict';var _=require('lodash');var util=require('util');var utils=require('../utils');var Redis=require(_0xcdc9('0x0'));var config=require('../../../../../config/environment');var logger=require(_0xcdc9('0x1'))(_0xcdc9('0x2'));config[_0xcdc9('0x3')]=_[_0xcdc9('0x4')](config['redis'],{'host':_0xcdc9('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xcdc9('0x3')]));function sendNotification(_0x441da6,_0x1f4ab2,_0x3d6154,_0x4c66bb,_0x524879,_0x4eb313){var _0x5af437=_0x4eb313||{};var _0x76dc61=_0x3d6154[_0xcdc9('0x6')]('.');var _0x1efa14={'uniqueid':_0x1f4ab2,'channel':_0x76dc61[0x0],'id':_0x76dc61[0x1],'title':_0x76dc61[0x0]+_0xcdc9('0x7'),'interactionId':_0x76dc61[0x2],'queue':_0x524879?_0x524879[_0xcdc9('0x8')]:null,'sound':_0x5af437[_0xcdc9('0x9')][_0xcdc9('0xa')],'shake':_0x5af437[_0xcdc9('0x9')][_0xcdc9('0xb')]};try{if(!_0x5af437['body']){_0x5af437[_0xcdc9('0xc')]={};}if(_0x524879){_0x5af437[_0xcdc9('0xc')][_0xcdc9('0xd')]=_0x524879;}else if(_0x5af437['body'][_0xcdc9('0xd')]){delete _0x5af437[_0xcdc9('0xc')][_0xcdc9('0xd')];}_0x1efa14[_0xcdc9('0xe')]=utils[_0xcdc9('0xf')](_0x5af437[_0xcdc9('0x9')][_0xcdc9('0x10')],_0x5af437);}catch(_0x397d1e){_0x1efa14[_0xcdc9('0xe')]=_0xcdc9('0x11');logger[_0xcdc9('0x12')](util[_0xcdc9('0x13')](_0xcdc9('0x14'),_0x1f4ab2,_0x397d1e[_0xcdc9('0x15')]));}io['to'](util[_0xcdc9('0x13')]('user:%s',_0x4c66bb[_0xcdc9('0x8')]))[_0xcdc9('0x16')](util['format'](_0xcdc9('0x17'),_0x441da6?_0xcdc9('0x18'):_0xcdc9('0x19')),_0x1efa14);}function writeLog(_0x4ff036,_0x3ccea4,_0x39667e){return logger[_0xcdc9('0x1a')](util[_0xcdc9('0x13')](_0xcdc9('0x1b'),_0x4ff036,_0x3ccea4[_0xcdc9('0x8')],_0x39667e));}exports[_0xcdc9('0x1c')]=function(_0x12e828,_0x22a5fe,_0x1809a1,_0xf8c1b9){if(_0x22a5fe[_0xcdc9('0x1d')]){writeLog(_0x12e828,_0x22a5fe,_0xcdc9('0x1e'));return![];}if(!_0x22a5fe[_0xcdc9('0x1f')]){writeLog(_0x12e828,_0x22a5fe,_0xcdc9('0x20'));return![];}if(_0x22a5fe[_0x1809a1+_0xcdc9('0x21')]){writeLog(_0x12e828,_0x22a5fe,'PAUSE');return![];}if(_0xf8c1b9&&_0x22a5fe[_0xcdc9('0x22')](_0x1809a1+'Capacity')&&_0x22a5fe[_0xcdc9('0x22')](_0x1809a1+_0xcdc9('0x23'))){if(_0x22a5fe[_0x1809a1+_0xcdc9('0x24')]>0x0&&_0x22a5fe[_0x1809a1+_0xcdc9('0x23')]>=_0x22a5fe[_0x1809a1+_0xcdc9('0x24')]){writeLog(_0x12e828,_0x22a5fe,_0x1809a1['toUpperCase']()+_0xcdc9('0x25'));return![];}}return!![];};exports[_0xcdc9('0x26')]=function(_0x3865be,_0x47b226,_0x2c565c,_0x289140,_0xe6eab3){return sendNotification(!![],_0x3865be,_0x47b226,_0x2c565c,_0x289140,_0xe6eab3);};exports[_0xcdc9('0x27')]=function(_0x187352,_0x4e9474,_0x55545e,_0x4eeadc,_0x71f62f){return sendNotification(![],_0x187352,_0x4e9474,_0x55545e,_0x4eeadc,_0x71f62f);};exports[_0xcdc9('0x28')]=function(_0x33bf5b,_0x1cd8ce,_0x2d8c91){var _0x1c75e5=_0x1cd8ce[_0xcdc9('0x29')][_0xcdc9('0x2a')];if(!_0x1c75e5&&_0x2d8c91){_0x1c75e5=_0x2d8c91['id'];}var _0x464058=_['some'](_0x33bf5b[_0x1cd8ce[_0xcdc9('0x2b')]+_0xcdc9('0x2c')],function(_0x1974bf){var _0x1c834d=_['capitalize'](_0x1cd8ce[_0xcdc9('0x2b')])+_0xcdc9('0x2d');return _0x1974bf[_0x1c834d]===_0x1cd8ce[_0xcdc9('0x29')]['id'];});if(!_0x464058&&_0x1c75e5&&_0x33bf5b[_0xcdc9('0x2e')][_0x1c75e5]){_0x464058=_[_0xcdc9('0x2f')](_0x33bf5b['agents'][_0x1c75e5][_0x1cd8ce[_0xcdc9('0x2b')]+_0xcdc9('0x30')],function(_0x511d2c){return _0x511d2c['id']===_0x1cd8ce['interaction']['id'];});}return _0x464058;};exports[_0xcdc9('0x31')]=function(_0x5a0fdf,_0x9663f2,_0x87dd1f,_0x5e9a1e){if(_0x87dd1f&&_0x87dd1f['id']&&_0x5a0fdf[_0xcdc9('0x2e')]&&_0x5a0fdf[_0xcdc9('0x2e')][_0x87dd1f['id']]){_0x5a0fdf[_0xcdc9('0x2e')][_0x87dd1f['id']][_0x5e9a1e+_0xcdc9('0x30')][_0x9663f2[_0xcdc9('0x15')]['id']]={'id':_0x9663f2[_0xcdc9('0x29')]['id']};}};exports[_0xcdc9('0x32')]=function(_0x3afb6e,_0x171a02,_0x211168,_0x5435d9){if(_0x211168&&_0x211168['id']&&_0x3afb6e[_0xcdc9('0x2e')]&&_0x3afb6e[_0xcdc9('0x2e')][_0x211168['id']]){delete _0x3afb6e[_0xcdc9('0x2e')][_0x211168['id']][_0x5435d9+_0xcdc9('0x30')][_0x171a02['message']['id']];}};exports[_0xcdc9('0x33')]=writeLog;