Built motion from commit 25580385.|2.6.2
[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 _0x430c=['queue','msg','notificationTemplate','format','message','notification:%s','save','remove','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','online','OFFLINE','PAUSE','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','lodash','mustache','ioredis','../../../../../config/environment','redis','localhost','emit','user:%s','name','user:save','\x20interaction','account','notificationSound','notificationShake','body'];(function(_0x110cbb,_0x186ee7){var _0x145f91=function(_0x3d2195){while(--_0x3d2195){_0x110cbb['push'](_0x110cbb['shift']());}};_0x145f91(++_0x186ee7);}(_0x430c,0x1a1));var _0xc430=function(_0x540dcb,_0x4eacb6){_0x540dcb=_0x540dcb-0x0;var _0x49353c=_0x430c[_0x540dcb];return _0x49353c;};'use strict';var _=require(_0xc430('0x0'));var util=require('util');var utils=require('../utils');var Mustache=require(_0xc430('0x1'));var Redis=require(_0xc430('0x2'));var config=require(_0xc430('0x3'));var logger=require('../../../../../config/logger')('routing');config['redis']=_['defaults'](config[_0xc430('0x4')],{'host':_0xc430('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc430('0x4')]));function emit(_0x4de44f,_0x212354,_0x2e51c6){io['to'](_0x4de44f)[_0xc430('0x6')](_0x212354,_0x2e51c6);}function sendNotification(_0x13ae66,_0x2e23f8,_0x11f4b0,_0x861581,_0x115814,_0x24737a){io['to'](util['format'](_0xc430('0x7'),_0x861581[_0xc430('0x8')]))['emit'](_0xc430('0x9'),_0x861581);var _0x5aeed9=_0x24737a||{};var _0x3b84bc=_0x11f4b0['split']('.');var _0x2ce28a={'uniqueid':_0x2e23f8,'channel':_0x3b84bc[0x0],'id':_0x3b84bc[0x1],'title':_0x3b84bc[0x0]+_0xc430('0xa'),'interactionId':_0x3b84bc[0x2],'queue':_0x115814?_0x115814[_0xc430('0x8')]:null,'sound':_0x5aeed9[_0xc430('0xb')][_0xc430('0xc')],'shake':_0x5aeed9[_0xc430('0xb')][_0xc430('0xd')]};try{if(!_0x5aeed9['body']){_0x5aeed9['body']={};}if(_0x115814){_0x5aeed9[_0xc430('0xe')][_0xc430('0xf')]=_0x115814;}else if(_0x5aeed9[_0xc430('0xe')][_0xc430('0xf')]){delete _0x5aeed9[_0xc430('0xe')]['queue'];}_0x2ce28a[_0xc430('0x10')]=utils['getMustacheRender'](_0x5aeed9['account'][_0xc430('0x11')],_0x5aeed9);}catch(_0x3d02df){_0x2ce28a[_0xc430('0x10')]='I\x20can\x27t\x20render\x20your\x20template';logger['error'](util[_0xc430('0x12')]('[%s][QUEUE]\x20%s',_0x2e23f8,_0x3d02df[_0xc430('0x13')]));}io['to'](util['format']('user:%s',_0x861581[_0xc430('0x8')]))['emit'](util[_0xc430('0x12')](_0xc430('0x14'),_0x13ae66?_0xc430('0x15'):_0xc430('0x16')),_0x2ce28a);}function writeLog(_0x2a1ea1,_0x5af282,_0x388a2f){return logger['info'](util['format'](_0xc430('0x17'),_0x2a1ea1,_0x5af282[_0xc430('0x8')],_0x388a2f));}exports[_0xc430('0x18')]=function(_0x56dd16,_0x3fd56b,_0x57d26e,_0x23425d){if(_0x3fd56b[_0xc430('0x19')]){writeLog(_0x56dd16,_0x3fd56b,'BUSY');return![];}if(!_0x3fd56b[_0xc430('0x1a')]){writeLog(_0x56dd16,_0x3fd56b,_0xc430('0x1b'));return![];}if(_0x3fd56b[_0x57d26e+'Pause']){writeLog(_0x56dd16,_0x3fd56b,_0xc430('0x1c'));return![];}if(_0x23425d&&_0x3fd56b['hasOwnProperty'](_0x57d26e+_0xc430('0x1d'))&&_0x3fd56b['hasOwnProperty'](_0x57d26e+_0xc430('0x1e'))){if(_0x3fd56b[_0x57d26e+_0xc430('0x1d')]>0x0&&_0x3fd56b[_0x57d26e+'CurrentCapacity']>=_0x3fd56b[_0x57d26e+_0xc430('0x1d')]){writeLog(_0x56dd16,_0x3fd56b,_0x57d26e[_0xc430('0x1f')]()+_0xc430('0x20'));return![];}}return!![];};exports[_0xc430('0x21')]=function(_0x285407,_0x57cd72,_0x2ccc13,_0x1a9512,_0x1c1da9){return sendNotification(!![],_0x285407,_0x57cd72,_0x2ccc13,_0x1a9512,_0x1c1da9);};exports[_0xc430('0x22')]=function(_0x542cba,_0x1f8086,_0x4cf56c,_0x1d65ee,_0x4ad29e){return sendNotification(![],_0x542cba,_0x1f8086,_0x4cf56c,_0x1d65ee,_0x4ad29e);};exports[_0xc430('0x23')]=writeLog;