Built motion from commit 092f8824.|2.5.49
[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 _0xba34=['user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','message','remove','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','BUSY','online','OFFLINE','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','redis','defaults','localhost','socket.io-emitter','emit','format','user:%s','name'];(function(_0x56cddb,_0x5a3637){var _0xee08f0=function(_0x45867f){while(--_0x45867f){_0x56cddb['push'](_0x56cddb['shift']());}};_0xee08f0(++_0x5a3637);}(_0xba34,0x119));var _0x4ba3=function(_0x26253e,_0x289da2){_0x26253e=_0x26253e-0x0;var _0x326f91=_0xba34[_0x26253e];return _0x326f91;};'use strict';var _=require(_0x4ba3('0x0'));var util=require(_0x4ba3('0x1'));var utils=require(_0x4ba3('0x2'));var Mustache=require(_0x4ba3('0x3'));var Redis=require(_0x4ba3('0x4'));var config=require('../../../../../config/environment');var logger=require('../../../../../config/logger')('routing');config[_0x4ba3('0x5')]=_[_0x4ba3('0x6')](config[_0x4ba3('0x5')],{'host':_0x4ba3('0x7'),'port':0x18eb});var io=require(_0x4ba3('0x8'))(new Redis(config[_0x4ba3('0x5')]));function emit(_0xe5f99a,_0x585f2d,_0x6254fb){io['to'](_0xe5f99a)[_0x4ba3('0x9')](_0x585f2d,_0x6254fb);}function sendNotification(_0x2df7f3,_0x18e332,_0x380d60,_0xcf1ec3,_0x292f58,_0x3f653c){io['to'](util[_0x4ba3('0xa')](_0x4ba3('0xb'),_0xcf1ec3[_0x4ba3('0xc')]))['emit'](_0x4ba3('0xd'),_0xcf1ec3);var _0x9071=_0x3f653c||{};var _0x485782=_0x380d60[_0x4ba3('0xe')]('.');var _0x567709={'uniqueid':_0x18e332,'channel':_0x485782[0x0],'id':_0x485782[0x1],'title':_0x485782[0x0]+_0x4ba3('0xf'),'interactionId':_0x485782[0x2],'queue':_0x292f58?_0x292f58['name']:null,'sound':_0x9071[_0x4ba3('0x10')][_0x4ba3('0x11')],'shake':_0x9071[_0x4ba3('0x10')][_0x4ba3('0x12')]};try{if(!_0x9071[_0x4ba3('0x13')]){_0x9071[_0x4ba3('0x13')]={};}if(_0x292f58){_0x9071[_0x4ba3('0x13')][_0x4ba3('0x14')]=_0x292f58;}else if(_0x9071[_0x4ba3('0x13')][_0x4ba3('0x14')]){delete _0x9071[_0x4ba3('0x13')][_0x4ba3('0x14')];}_0x567709[_0x4ba3('0x15')]=utils[_0x4ba3('0x16')](_0x9071[_0x4ba3('0x10')][_0x4ba3('0x17')],_0x9071);}catch(_0x58d20a){_0x567709[_0x4ba3('0x15')]=_0x4ba3('0x18');logger[_0x4ba3('0x19')](util[_0x4ba3('0xa')]('[%s][QUEUE]\x20%s',_0x18e332,_0x58d20a[_0x4ba3('0x1a')]));}io['to'](util[_0x4ba3('0xa')](_0x4ba3('0xb'),_0xcf1ec3[_0x4ba3('0xc')]))[_0x4ba3('0x9')](util[_0x4ba3('0xa')]('notification:%s',_0x2df7f3?'save':_0x4ba3('0x1b')),_0x567709);}function writeLog(_0x579d9f,_0x18dff5,_0x163967){return logger[_0x4ba3('0x1c')](util[_0x4ba3('0xa')](_0x4ba3('0x1d'),_0x579d9f,_0x18dff5[_0x4ba3('0xc')],_0x163967));}exports['isAgentAvailable']=function(_0x143c78,_0x1f87e1,_0x5c28f9,_0x28bb3d){if(_0x1f87e1['busy']){writeLog(_0x143c78,_0x1f87e1,_0x4ba3('0x1e'));return![];}if(!_0x1f87e1[_0x4ba3('0x1f')]){writeLog(_0x143c78,_0x1f87e1,_0x4ba3('0x20'));return![];}if(_0x1f87e1[_0x5c28f9+_0x4ba3('0x21')]){writeLog(_0x143c78,_0x1f87e1,_0x4ba3('0x22'));return![];}if(_0x28bb3d&&_0x1f87e1[_0x4ba3('0x23')](_0x5c28f9+_0x4ba3('0x24'))&&_0x1f87e1[_0x4ba3('0x23')](_0x5c28f9+_0x4ba3('0x25'))){if(_0x1f87e1[_0x5c28f9+_0x4ba3('0x24')]>0x0&&_0x1f87e1[_0x5c28f9+'CurrentCapacity']>=_0x1f87e1[_0x5c28f9+_0x4ba3('0x24')]){writeLog(_0x143c78,_0x1f87e1,_0x5c28f9[_0x4ba3('0x26')]()+_0x4ba3('0x27'));return![];}}return!![];};exports['showNotification']=function(_0x10537e,_0x1fe5e2,_0x44d78c,_0x5a3588,_0x10cae6){return sendNotification(!![],_0x10537e,_0x1fe5e2,_0x44d78c,_0x5a3588,_0x10cae6);};exports[_0x4ba3('0x28')]=function(_0x34ecb4,_0x22394d,_0x4a339e,_0x590108,_0x38ef88){return sendNotification(![],_0x34ecb4,_0x22394d,_0x4a339e,_0x590108,_0x38ef88);};exports[_0x4ba3('0x29')]=writeLog;