Built motion from commit 87cd5f02.|2.5.48
[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 _0xfb11=['PAUSE','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','lodash','../utils','mustache','../../../../../config/environment','routing','defaults','redis','socket.io-emitter','emit','format','name','user:save','split','\x20interaction','account','notificationShake','body','queue','getMustacheRender','notificationTemplate','msg','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','message','user:%s','remove','info','isAgentAvailable','BUSY','online','OFFLINE','Pause'];(function(_0x58b059,_0x389f8f){var _0x22192d=function(_0x20f6af){while(--_0x20f6af){_0x58b059['push'](_0x58b059['shift']());}};_0x22192d(++_0x389f8f);}(_0xfb11,0x1ad));var _0x1fb1=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0xfb11[_0x3b380d];return _0x54502b;};'use strict';var _=require(_0x1fb1('0x0'));var util=require('util');var utils=require(_0x1fb1('0x1'));var Mustache=require(_0x1fb1('0x2'));var Redis=require('ioredis');var config=require(_0x1fb1('0x3'));var logger=require('../../../../../config/logger')(_0x1fb1('0x4'));config['redis']=_[_0x1fb1('0x5')](config[_0x1fb1('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x1fb1('0x7'))(new Redis(config[_0x1fb1('0x6')]));function emit(_0x4c098d,_0x1859da,_0x2596c2){io['to'](_0x4c098d)[_0x1fb1('0x8')](_0x1859da,_0x2596c2);}function sendNotification(_0x236b20,_0x161e1b,_0x2d6be9,_0x438d15,_0x416625,_0x377aae){io['to'](util[_0x1fb1('0x9')]('user:%s',_0x438d15[_0x1fb1('0xa')]))['emit'](_0x1fb1('0xb'),_0x438d15);var _0x58b66e=_0x377aae||{};var _0xa977b1=_0x2d6be9[_0x1fb1('0xc')]('.');var _0xd39b52={'uniqueid':_0x161e1b,'channel':_0xa977b1[0x0],'id':_0xa977b1[0x1],'title':_0xa977b1[0x0]+_0x1fb1('0xd'),'interactionId':_0xa977b1[0x2],'queue':_0x416625?_0x416625[_0x1fb1('0xa')]:null,'sound':_0x58b66e[_0x1fb1('0xe')]['notificationSound'],'shake':_0x58b66e[_0x1fb1('0xe')][_0x1fb1('0xf')]};try{if(!_0x58b66e[_0x1fb1('0x10')]){_0x58b66e[_0x1fb1('0x10')]={};}if(_0x416625){_0x58b66e[_0x1fb1('0x10')][_0x1fb1('0x11')]=_0x416625;}else if(_0x58b66e[_0x1fb1('0x10')][_0x1fb1('0x11')]){delete _0x58b66e[_0x1fb1('0x10')]['queue'];}_0xd39b52['msg']=utils[_0x1fb1('0x12')](_0x58b66e[_0x1fb1('0xe')][_0x1fb1('0x13')],_0x58b66e);}catch(_0x5e0f16){_0xd39b52[_0x1fb1('0x14')]=_0x1fb1('0x15');logger[_0x1fb1('0x16')](util[_0x1fb1('0x9')](_0x1fb1('0x17'),_0x161e1b,_0x5e0f16[_0x1fb1('0x18')]));}io['to'](util[_0x1fb1('0x9')](_0x1fb1('0x19'),_0x438d15[_0x1fb1('0xa')]))['emit'](util[_0x1fb1('0x9')]('notification:%s',_0x236b20?'save':_0x1fb1('0x1a')),_0xd39b52);}function writeLog(_0x313d9a,_0x1eaf9e,_0x54ad97){return logger[_0x1fb1('0x1b')](util['format']('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x313d9a,_0x1eaf9e['name'],_0x54ad97));}exports[_0x1fb1('0x1c')]=function(_0x1f8e5a,_0x12c1d0,_0x10924f,_0x303a06){if(_0x12c1d0['busy']){writeLog(_0x1f8e5a,_0x12c1d0,_0x1fb1('0x1d'));return![];}if(!_0x12c1d0[_0x1fb1('0x1e')]){writeLog(_0x1f8e5a,_0x12c1d0,_0x1fb1('0x1f'));return![];}if(_0x12c1d0[_0x10924f+_0x1fb1('0x20')]){writeLog(_0x1f8e5a,_0x12c1d0,_0x1fb1('0x21'));return![];}if(_0x303a06&&_0x12c1d0[_0x1fb1('0x22')](_0x10924f+_0x1fb1('0x23'))&&_0x12c1d0[_0x1fb1('0x22')](_0x10924f+'CurrentCapacity')){if(_0x12c1d0[_0x10924f+_0x1fb1('0x23')]>0x0&&_0x12c1d0[_0x10924f+_0x1fb1('0x24')]>=_0x12c1d0[_0x10924f+_0x1fb1('0x23')]){writeLog(_0x1f8e5a,_0x12c1d0,_0x10924f[_0x1fb1('0x25')]()+_0x1fb1('0x26'));return![];}}return!![];};exports[_0x1fb1('0x27')]=function(_0x1a74c4,_0x15992c,_0xa7bba,_0x33a3b7,_0x5e99e7){return sendNotification(!![],_0x1a74c4,_0x15992c,_0xa7bba,_0x33a3b7,_0x5e99e7);};exports[_0x1fb1('0x28')]=function(_0x39fc43,_0xe8ec0a,_0x2f6c88,_0x520ee2,_0x106134){return sendNotification(![],_0x39fc43,_0xe8ec0a,_0x2f6c88,_0x520ee2,_0x106134);};exports[_0x1fb1('0x29')]=writeLog;