1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00

chore(modernize): Modernize HealthCheckController

This commit is contained in:
ivaosthu 2018-11-24 12:43:46 +01:00 committed by Ivar Conradi Østhus
parent 0d68c4b366
commit 7bc8ed0334
3 changed files with 31 additions and 22 deletions

View File

@ -1,24 +1,31 @@
'use strict'; 'use strict';
const logger = require('../logger')('health-check.js');
const { Router } = require('express'); const { Router } = require('express');
const logger = require('../logger')('health-check.js');
exports.router = function(config) { class HealthCheckController {
const router = Router(); constructor(config) {
const app = Router();
router.get('/', (req, res) => { this.app = app;
config.stores.db this.db = config.stores.db;
.select(1)
.from('features') app.get('/', (req, res) => this.index(req, res));
.then(() => res.json({ health: 'GOOD' })) }
.catch(err => {
logger.error( async index(req, res) {
'Could not select from features, error was: ', try {
err await this.db.select(1).from('features');
); res.json({ health: 'GOOD' });
} catch (e) {
logger.error('Could not select from features, error was: ', e);
res.status(500).json({ health: 'BAD' }); res.status(500).json({ health: 'BAD' });
}); }
}); }
return router; router() {
}; return this.app;
}
}
module.exports = HealthCheckController;

View File

@ -10,13 +10,13 @@ const adminApi = require('./admin-api');
const clientApi = require('./client-api'); const clientApi = require('./client-api');
const clientFeatures = require('./client-api/feature.js'); const clientFeatures = require('./client-api/feature.js');
const health = require('./health-check'); const HealthCheckController = require('./health-check');
const backstage = require('./backstage.js'); const backstage = require('./backstage.js');
exports.router = function(config) { exports.router = function(config) {
const router = Router(); const router = Router();
router.use('/health', health.router(config)); router.use('/health', new HealthCheckController(config).router());
router.use('/internal-backstage', backstage.router(config)); router.use('/internal-backstage', backstage.router(config));
router.get('/api', (req, res) => { router.get('/api', (req, res) => {

View File

@ -2,6 +2,7 @@
const { EventEmitter } = require('events'); const { EventEmitter } = require('events');
const logFactory = require('./logger');
const logger = require('./logger')('server-impl.js'); const logger = require('./logger')('server-impl.js');
const migrator = require('../migrator'); const migrator = require('../migrator');
const getApp = require('./app'); const getApp = require('./app');
@ -21,8 +22,9 @@ function createApp(options) {
{ {
stores, stores,
eventBus, eventBus,
logFactory,
}, },
options options,
); );
const app = getApp(config); const app = getApp(config);
@ -34,7 +36,7 @@ function createApp(options) {
); );
const server = app.listen({ port: options.port, host: options.host }, () => const server = app.listen({ port: options.port, host: options.host }, () =>
logger.info(`Unleash started on port ${server.address().port}`) logger.info(`Unleash started on port ${server.address().port}`),
); );
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {