b49c5960ea1a02ecd091be054e87279aac54aac5
[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 _0x6d38=['Capacity','CurrentCapacity','\x20MAXCAPACITY','hideNotification','writeLog','util','../utils','mustache','../../../../../config/logger','redis','defaults','socket.io-emitter','format','emit','user:save','\x20interaction','name','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','message','remove','isAgentAvailable','busy','OFFLINE','PAUSE','hasOwnProperty'];(function(_0x232026,_0x206fa6){var _0x25e3e1=function(_0x441b0f){while(--_0x441b0f){_0x232026['push'](_0x232026['shift']());}};_0x25e3e1(++_0x206fa6);}(_0x6d38,0x1ef));var _0x86d3=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x6d38[_0x126558];return _0x1f6d14;};'use strict';var _=require('lodash');var util=require(_0x86d3('0x0'));var utils=require(_0x86d3('0x1'));var Mustache=require(_0x86d3('0x2'));var Redis=require('ioredis');var config=require('../../../../../config/environment');var logger=require(_0x86d3('0x3'))('routing');config[_0x86d3('0x4')]=_[_0x86d3('0x5')](config[_0x86d3('0x4')],{'host':'localhost','port':0x18eb});var io=require(_0x86d3('0x6'))(new Redis(config[_0x86d3('0x4')]));function emit(_0x33d4aa,_0x2eaa15,_0x47e654){io['to'](_0x33d4aa)['emit'](_0x2eaa15,_0x47e654);}function sendNotification(_0x2aea31,_0x3ab01e,_0xf273f5,_0x499640,_0x4a277e,_0x3ed317){io['to'](util[_0x86d3('0x7')]('user:%s',_0x499640['name']))[_0x86d3('0x8')](_0x86d3('0x9'),_0x499640);var _0x4f216c=_0x3ed317||{};var _0x9fd6e8=_0xf273f5['split']('.');var _0x1a98e8={'uniqueid':_0x3ab01e,'channel':_0x9fd6e8[0x0],'id':_0x9fd6e8[0x1],'title':_0x9fd6e8[0x0]+_0x86d3('0xa'),'interactionId':_0x9fd6e8[0x2],'queue':_0x4a277e?_0x4a277e[_0x86d3('0xb')]:null,'sound':_0x4f216c[_0x86d3('0xc')][_0x86d3('0xd')],'shake':_0x4f216c[_0x86d3('0xc')][_0x86d3('0xe')]};try{if(!_0x4f216c[_0x86d3('0xf')]){_0x4f216c['body']={};}if(_0x4a277e){_0x4f216c[_0x86d3('0xf')][_0x86d3('0x10')]=_0x4a277e;}else if(_0x4f216c[_0x86d3('0xf')][_0x86d3('0x10')]){delete _0x4f216c[_0x86d3('0xf')][_0x86d3('0x10')];}_0x1a98e8[_0x86d3('0x11')]=utils[_0x86d3('0x12')](_0x4f216c['account'][_0x86d3('0x13')],_0x4f216c);}catch(_0x281da0){_0x1a98e8[_0x86d3('0x11')]=_0x86d3('0x14');logger[_0x86d3('0x15')](util[_0x86d3('0x7')](_0x86d3('0x16'),_0x3ab01e,_0x281da0[_0x86d3('0x17')]));}io['to'](util[_0x86d3('0x7')]('user:%s',_0x499640[_0x86d3('0xb')]))['emit'](util[_0x86d3('0x7')]('notification:%s',_0x2aea31?'save':_0x86d3('0x18')),_0x1a98e8);}function writeLog(_0x1edb6d,_0x988066,_0x1720ae){return logger['info'](util[_0x86d3('0x7')]('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x1edb6d,_0x988066[_0x86d3('0xb')],_0x1720ae));}exports[_0x86d3('0x19')]=function(_0x1ce849,_0x5b990d,_0x39d819,_0x72b3d4){if(_0x5b990d[_0x86d3('0x1a')]){writeLog(_0x1ce849,_0x5b990d,'BUSY');return![];}if(!_0x5b990d['online']){writeLog(_0x1ce849,_0x5b990d,_0x86d3('0x1b'));return![];}if(_0x5b990d[_0x39d819+'Pause']){writeLog(_0x1ce849,_0x5b990d,_0x86d3('0x1c'));return![];}if(_0x72b3d4&&_0x5b990d[_0x86d3('0x1d')](_0x39d819+_0x86d3('0x1e'))&&_0x5b990d[_0x86d3('0x1d')](_0x39d819+'CurrentCapacity')){if(_0x5b990d[_0x39d819+'Capacity']>0x0&&_0x5b990d[_0x39d819+_0x86d3('0x1f')]>=_0x5b990d[_0x39d819+_0x86d3('0x1e')]){writeLog(_0x1ce849,_0x5b990d,_0x39d819['toUpperCase']()+_0x86d3('0x20'));return![];}}return!![];};exports['showNotification']=function(_0x42413c,_0x41e2f0,_0x287b96,_0x763bdb,_0x11a6fd){return sendNotification(!![],_0x42413c,_0x41e2f0,_0x287b96,_0x763bdb,_0x11a6fd);};exports[_0x86d3('0x21')]=function(_0x1f203e,_0x35d708,_0x303f13,_0x44dacf,_0x206996){return sendNotification(![],_0x1f203e,_0x35d708,_0x303f13,_0x44dacf,_0x206996);};exports[_0x86d3('0x22')]=writeLog;