import type {HealthCheck} from '../health/HealthCheck.js'; import type {RoutePath, RouteHandler} from '../net/http/HttpRouteManger.js'; import type {IApiRoute} from './IApiRoute'; import type express from 'express'; export class HealthCheckApi implements IApiRoute { private readonly _getRoutes: Record; private readonly _postRoutes: Record; private readonly _putRoutes: Record; private readonly _deleteRoutes: Record; private readonly _healthCheck: HealthCheck; constructor(healthCheck: HealthCheck) { this._healthCheck = healthCheck; this._getRoutes = this.setupGETRoutes(); this._postRoutes = this.setupPOSTRoutes(); this._putRoutes = this.setupPUTRoutes(); this._deleteRoutes = this.setupDELETERoutes(); } public getGETRoutes(): Record { return this._getRoutes; } public getPOSTRoutes(): Record { return this._postRoutes; } public getPUTRoutes(): Record { return this._putRoutes; } public getDELETERoutes(): Record { return this._deleteRoutes; } private setupGETRoutes(): Record { return { '/_health': this.getHealth.bind(this) }; } private setupPOSTRoutes(): Record { return {}; } private setupPUTRoutes(): Record { return {}; } private setupDELETERoutes(): Record { return {}; } private getHealth(req: express.Request, res: express.Response): void { const health = this._healthCheck.getHealth(); res.send(health); } }