457cf842a33146d7754e7a44981dab5359675cdd
[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 _0x3bb8=['Pause','PAUSE','Capacity','hasOwnProperty','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','checkWaitingNotifications','UserId','some','channel','QueuesWaitingInteractions','capitalize','interaction','agents','WaitingInteractions','saveWaitingNotification','removeWaitingNotification','writeLog','lodash','util','../utils','ioredis','../../../../../config/environment','routing','defaults','redis','localhost','split','name','notificationSound','account','body','queue','notificationTemplate','msg','I\x20can\x27t\x20render\x20your\x20template','error','format','message','user:%s','notification:%s','remove','debug','[%s][QUEUE][AGENT:%s][STATUS:%s]','busy','BUSY','online'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3bb8,0x173));var _0x83bb=function(_0xc116f3,_0x2e506a){_0xc116f3=_0xc116f3-0x0;var _0x2561ac=_0x3bb8[_0xc116f3];return _0x2561ac;};'use strict';var _=require(_0x83bb('0x0'));var util=require(_0x83bb('0x1'));var utils=require(_0x83bb('0x2'));var Redis=require(_0x83bb('0x3'));var config=require(_0x83bb('0x4'));var logger=require('../../../../../config/logger')(_0x83bb('0x5'));config['redis']=_[_0x83bb('0x6')](config[_0x83bb('0x7')],{'host':_0x83bb('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function sendNotification(_0x353d9b,_0x3bdf48,_0x5df35e,_0x550d1a,_0x3d3fc5,_0x54a1b0){var _0x205d2b=_0x54a1b0||{};var _0xd0a30d=_0x5df35e[_0x83bb('0x9')]('.');var _0x20b5c3={'uniqueid':_0x3bdf48,'channel':_0xd0a30d[0x0],'id':_0xd0a30d[0x1],'title':_0xd0a30d[0x0]+'\x20interaction','interactionId':_0xd0a30d[0x2],'queue':_0x3d3fc5?_0x3d3fc5[_0x83bb('0xa')]:null,'sound':_0x205d2b['account'][_0x83bb('0xb')],'shake':_0x205d2b[_0x83bb('0xc')]['notificationShake']};try{if(!_0x205d2b['body']){_0x205d2b[_0x83bb('0xd')]={};}if(_0x3d3fc5){_0x205d2b[_0x83bb('0xd')]['queue']=_0x3d3fc5;}else if(_0x205d2b['body'][_0x83bb('0xe')]){delete _0x205d2b[_0x83bb('0xd')][_0x83bb('0xe')];}_0x20b5c3['msg']=utils['getMustacheRender'](_0x205d2b[_0x83bb('0xc')][_0x83bb('0xf')],_0x205d2b);}catch(_0x43e71c){_0x20b5c3[_0x83bb('0x10')]=_0x83bb('0x11');logger[_0x83bb('0x12')](util[_0x83bb('0x13')]('[%s][QUEUE]\x20%s',_0x3bdf48,_0x43e71c[_0x83bb('0x14')]));}io['to'](util[_0x83bb('0x13')](_0x83bb('0x15'),_0x550d1a['name']))['emit'](util[_0x83bb('0x13')](_0x83bb('0x16'),_0x353d9b?'save':_0x83bb('0x17')),_0x20b5c3);}function writeLog(_0x17161a,_0x29a2ff,_0x2461a3){return logger[_0x83bb('0x18')](util['format'](_0x83bb('0x19'),_0x17161a,_0x29a2ff[_0x83bb('0xa')],_0x2461a3));}exports['isAgentAvailable']=function(_0x52cadc,_0x26461f,_0x8bd0ef,_0x262eff){if(_0x26461f[_0x83bb('0x1a')]){writeLog(_0x52cadc,_0x26461f,_0x83bb('0x1b'));return![];}if(!_0x26461f[_0x83bb('0x1c')]){writeLog(_0x52cadc,_0x26461f,'OFFLINE');return![];}if(_0x26461f[_0x8bd0ef+_0x83bb('0x1d')]){writeLog(_0x52cadc,_0x26461f,_0x83bb('0x1e'));return![];}if(_0x262eff&&_0x26461f['hasOwnProperty'](_0x8bd0ef+_0x83bb('0x1f'))&&_0x26461f[_0x83bb('0x20')](_0x8bd0ef+'CurrentCapacity')){if(_0x26461f[_0x8bd0ef+'Capacity']>0x0&&_0x26461f[_0x8bd0ef+_0x83bb('0x21')]>=_0x26461f[_0x8bd0ef+'Capacity']){writeLog(_0x52cadc,_0x26461f,_0x8bd0ef[_0x83bb('0x22')]()+_0x83bb('0x23'));return![];}}return!![];};exports[_0x83bb('0x24')]=function(_0x24eef6,_0x29fa80,_0x34efb0,_0x3d8abf,_0x3fc96a){return sendNotification(!![],_0x24eef6,_0x29fa80,_0x34efb0,_0x3d8abf,_0x3fc96a);};exports[_0x83bb('0x25')]=function(_0x39df38,_0x2c35fe,_0x4dab2d,_0x35c257,_0x2c86ee){return sendNotification(![],_0x39df38,_0x2c35fe,_0x4dab2d,_0x35c257,_0x2c86ee);};exports[_0x83bb('0x26')]=function(_0x18d478,_0x33ca19,_0x3ee849){var _0x3f4d43=_0x33ca19['interaction'][_0x83bb('0x27')];if(!_0x3f4d43&&_0x3ee849){_0x3f4d43=_0x3ee849['id'];}var _0x4a9ecf=_[_0x83bb('0x28')](_0x18d478[_0x33ca19[_0x83bb('0x29')]+_0x83bb('0x2a')],function(_0x2f3768){var _0x10cfc5=_[_0x83bb('0x2b')](_0x33ca19[_0x83bb('0x29')])+'InteractionId';return _0x2f3768[_0x10cfc5]===_0x33ca19[_0x83bb('0x2c')]['id'];});if(!_0x4a9ecf&&_0x3f4d43&&_0x18d478[_0x83bb('0x2d')][_0x3f4d43]){_0x4a9ecf=_[_0x83bb('0x28')](_0x18d478[_0x83bb('0x2d')][_0x3f4d43][_0x33ca19[_0x83bb('0x29')]+_0x83bb('0x2e')],function(_0x117fc9){return _0x117fc9['id']===_0x33ca19[_0x83bb('0x2c')]['id'];});}return _0x4a9ecf;};exports[_0x83bb('0x2f')]=function(_0x1fb7f5,_0x30d24a,_0x24085c,_0x234c44){if(_0x24085c&&_0x24085c['id']&&_0x1fb7f5[_0x83bb('0x2d')]&&_0x1fb7f5['agents'][_0x24085c['id']]){_0x1fb7f5[_0x83bb('0x2d')][_0x24085c['id']][_0x234c44+_0x83bb('0x2e')][_0x30d24a[_0x83bb('0x14')]['id']]={'id':_0x30d24a[_0x83bb('0x2c')]['id']};}};exports[_0x83bb('0x30')]=function(_0x84ed71,_0x1cd910,_0x324c2c,_0x30a7b6){if(_0x324c2c&&_0x324c2c['id']&&_0x84ed71[_0x83bb('0x2d')]&&_0x84ed71[_0x83bb('0x2d')][_0x324c2c['id']]){delete _0x84ed71['agents'][_0x324c2c['id']][_0x30a7b6+_0x83bb('0x2e')][_0x1cd910[_0x83bb('0x14')]['id']];}};exports[_0x83bb('0x31')]=writeLog;