1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-12 13:48:35 +02:00
unleash.unleash/src/lib/routes/admin-api/project/health-report.ts
2021-08-09 14:55:54 +02:00

45 lines
1.4 KiB
TypeScript

import { Request, Response } from 'express';
import Controller from '../../controller';
import { IUnleashServices } from '../../../types/services';
import { IUnleashConfig } from '../../../types/option';
import ProjectHealthService from '../../../services/project-health-service';
import { Logger } from '../../../logger';
import { IProjectParam } from '../../../types/model';
import { handleErrors } from '../util';
export default class ProjectHealthReport extends Controller {
private projectHealthService: ProjectHealthService;
private logger: Logger;
constructor(
config: IUnleashConfig,
{
projectHealthService,
}: Pick<IUnleashServices, 'projectHealthService'>,
) {
super(config);
this.logger = config.getLogger('/admin-api/project/health-report');
this.projectHealthService = projectHealthService;
this.get('/:projectId/health-report', this.getProjectHealthReport);
}
async getProjectHealthReport(
req: Request<IProjectParam, any, any, any>,
res: Response,
): Promise<void> {
const { projectId } = req.params;
try {
const overview = await this.projectHealthService.getProjectHealthReport(
projectId,
);
res.json({
version: 2,
...overview,
});
} catch (e) {
handleErrors(res, this.logger, e);
}
}
}