import { healthChecks } from "#start/health.ts"
import { middleware } from "#start/kernel.ts"
import type { HttpContext } from "@adonisjs/core/http"
import router from "@adonisjs/core/services/router"
import type { HealthCheckReport } from "@adonisjs/core/types/health"
export default class get_health_controller {
public async handle(context: HttpContext): Promise<
| {
__response: HealthCheckReport
__status: 200
}
__status: 503
> {
const report = await healthChecks.run()
if (!report.isHealthy) {
return context.response.serviceUnavailable(report)
return context.response.ok(report)
router
.get("/health", [get_health_controller])
.use(middleware.appKeySecurity())
.openapi({
description: "Ensure that the application is in a healthy state.",
tags: ["health"],
})