UNPKG

ncrudify

Version:

Configurable CRUD module for NestJS and Mongoose.

50 lines (45 loc) 1.36 kB
import { Controller, Get } from "@nestjs/common"; import { ApiOperation, ApiResponse, ApiTags } from "@nestjs/swagger"; import { InjectConnection } from "@nestjs/mongoose"; import { Connection } from "mongoose"; import { HealthResponse } from "./health-response.entity"; @ApiTags("Health Check") @Controller("health") export class HealthController { constructor(@InjectConnection() private readonly connection: Connection) {} @Get() @ApiOperation({ summary: "Check application and database health" }) @ApiResponse({ status: 200, description: "Health check successful", type: HealthResponse, }) @ApiResponse({ status: 500, description: "Internal server error" }) checkHealth() { const appStatus = "OK"; const dbStatus = this.getDatabaseStatus(); const timestamp = new Date().toISOString(); return { status: appStatus, database: dbStatus, timestamp, }; } private getDatabaseStatus() { const readyState = this.connection.readyState; switch (readyState) { case 0: return "Disconnected"; case 1: return "Connected"; case 2: return "Connecting"; case 3: return "Disconnecting"; case 99: return "Uninitialized"; default: return "Unknown"; } } }