d5c192c74873f6cf64b038fdfe440495a4cc8a8b
[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 _0x4bd3=['[%s][QUEUE][AGENT:%s][STATUS:%s]','BUSY','online','OFFLINE','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','showNotification','hideNotification','writeLog','lodash','../utils','mustache','routing','redis','defaults','localhost','socket.io-emitter','emit','format','user:%s','name','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','notification:%s','save','remove','info'];(function(_0x55cef3,_0x3cce3b){var _0x2a7c13=function(_0x3ce876){while(--_0x3ce876){_0x55cef3['push'](_0x55cef3['shift']());}};_0x2a7c13(++_0x3cce3b);}(_0x4bd3,0x174));var _0x34bd=function(_0x571fad,_0xa41ecb){_0x571fad=_0x571fad-0x0;var _0x45fa03=_0x4bd3[_0x571fad];return _0x45fa03;};'use strict';var _=require(_0x34bd('0x0'));var util=require('util');var utils=require(_0x34bd('0x1'));var Mustache=require(_0x34bd('0x2'));var Redis=require('ioredis');var config=require('../../../../../config/environment');var logger=require('../../../../../config/logger')(_0x34bd('0x3'));config[_0x34bd('0x4')]=_[_0x34bd('0x5')](config['redis'],{'host':_0x34bd('0x6'),'port':0x18eb});var io=require(_0x34bd('0x7'))(new Redis(config['redis']));function emit(_0x3e8744,_0x213716,_0x51a4d7){io['to'](_0x3e8744)[_0x34bd('0x8')](_0x213716,_0x51a4d7);}function sendNotification(_0x76de8d,_0x3260ff,_0xed6181,_0x1ac77f,_0x36a463,_0x4db0ba){io['to'](util[_0x34bd('0x9')](_0x34bd('0xa'),_0x1ac77f[_0x34bd('0xb')]))[_0x34bd('0x8')]('user:save',_0x1ac77f);var _0x4a8622=_0x4db0ba||{};var _0x3da7a0=_0xed6181['split']('.');var _0x4ac0dc={'uniqueid':_0x3260ff,'channel':_0x3da7a0[0x0],'id':_0x3da7a0[0x1],'title':_0x3da7a0[0x0]+_0x34bd('0xc'),'interactionId':_0x3da7a0[0x2],'queue':_0x36a463?_0x36a463[_0x34bd('0xb')]:null,'sound':_0x4a8622[_0x34bd('0xd')][_0x34bd('0xe')],'shake':_0x4a8622[_0x34bd('0xd')][_0x34bd('0xf')]};try{if(!_0x4a8622[_0x34bd('0x10')]){_0x4a8622[_0x34bd('0x10')]={};}if(_0x36a463){_0x4a8622[_0x34bd('0x10')]['queue']=_0x36a463;}else if(_0x4a8622[_0x34bd('0x10')]['queue']){delete _0x4a8622['body'][_0x34bd('0x11')];}_0x4ac0dc[_0x34bd('0x12')]=utils[_0x34bd('0x13')](_0x4a8622[_0x34bd('0xd')][_0x34bd('0x14')],_0x4a8622);}catch(_0x1643af){_0x4ac0dc[_0x34bd('0x12')]=_0x34bd('0x15');logger[_0x34bd('0x16')](util[_0x34bd('0x9')](_0x34bd('0x17'),_0x3260ff,_0x1643af['message']));}io['to'](util[_0x34bd('0x9')](_0x34bd('0xa'),_0x1ac77f[_0x34bd('0xb')]))[_0x34bd('0x8')](util[_0x34bd('0x9')](_0x34bd('0x18'),_0x76de8d?_0x34bd('0x19'):_0x34bd('0x1a')),_0x4ac0dc);}function writeLog(_0x130bd0,_0x55538e,_0x15c0d1){return logger[_0x34bd('0x1b')](util[_0x34bd('0x9')](_0x34bd('0x1c'),_0x130bd0,_0x55538e[_0x34bd('0xb')],_0x15c0d1));}exports['isAgentAvailable']=function(_0x582772,_0x5da62a,_0x4edf84,_0x3dafe8){if(_0x5da62a['busy']){writeLog(_0x582772,_0x5da62a,_0x34bd('0x1d'));return![];}if(!_0x5da62a[_0x34bd('0x1e')]){writeLog(_0x582772,_0x5da62a,_0x34bd('0x1f'));return![];}if(_0x5da62a[_0x4edf84+'Pause']){writeLog(_0x582772,_0x5da62a,_0x34bd('0x20'));return![];}if(_0x3dafe8&&_0x5da62a[_0x34bd('0x21')](_0x4edf84+_0x34bd('0x22'))&&_0x5da62a[_0x34bd('0x21')](_0x4edf84+'CurrentCapacity')){if(_0x5da62a[_0x4edf84+_0x34bd('0x22')]>0x0&&_0x5da62a[_0x4edf84+_0x34bd('0x23')]>=_0x5da62a[_0x4edf84+_0x34bd('0x22')]){writeLog(_0x582772,_0x5da62a,_0x4edf84[_0x34bd('0x24')]()+'\x20MAXCAPACITY');return![];}}return!![];};exports[_0x34bd('0x25')]=function(_0x3fe8b0,_0x5d2e3d,_0x27747e,_0x510a30,_0x16581f){return sendNotification(!![],_0x3fe8b0,_0x5d2e3d,_0x27747e,_0x510a30,_0x16581f);};exports[_0x34bd('0x26')]=function(_0x26b8e7,_0x4500c8,_0x177d43,_0x58b431,_0x43b92d){return sendNotification(![],_0x26b8e7,_0x4500c8,_0x177d43,_0x58b431,_0x43b92d);};exports[_0x34bd('0x27')]=writeLog;