mirror of
https://github.com/Unleash/unleash.git
synced 2024-10-18 20:09:08 +02:00
240c6a77a1
feat: options are now typed - This makes it easier to know what to send to unleash.start / unleash.create - Using a Partial to instantiate the config, then melding it with defaults to get a config object with all fields set either to their defaults or to whatever is passed in. Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com> Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
'use strict';
|
|
|
|
import { Request, Response } from 'express';
|
|
import { IUnleashConfig } from '../types/option';
|
|
import { IUnleashServices } from '../types/services';
|
|
import { Logger } from '../logger';
|
|
import HealthService from '../services/health-service';
|
|
|
|
const Controller = require('./controller');
|
|
|
|
class HealthCheckController extends Controller {
|
|
private logger: Logger;
|
|
|
|
private healthService: HealthService;
|
|
|
|
constructor(
|
|
config: IUnleashConfig,
|
|
{ healthService }: Pick<IUnleashServices, 'healthService'>,
|
|
) {
|
|
super();
|
|
this.logger = config.getLogger('health-check.js');
|
|
this.healthService = healthService;
|
|
this.get('/', (req, res) => this.index(req, res));
|
|
}
|
|
|
|
async index(req: Request, res: Response): Promise<void> {
|
|
try {
|
|
await this.healthService.dbIsUp();
|
|
res.json({ health: 'GOOD' });
|
|
} catch (e) {
|
|
this.logger.error('Could not select from features, error was: ', e);
|
|
res.status(500).json({ health: 'BAD' });
|
|
}
|
|
}
|
|
}
|
|
export default HealthCheckController;
|
|
module.exports = HealthCheckController;
|