2026-06-02 21:06:42 +07:00
|
|
|
import { createChildLogger } from "@bete/shared/logger";
|
2026-07-27 21:54:31 +07:00
|
|
|
import { sql } from "drizzle-orm";
|
|
|
|
|
import { getDatabase } from "../../shared/database/index.js";
|
2026-06-01 21:44:29 +07:00
|
|
|
|
|
|
|
|
const logger = createChildLogger("health.repository");
|
|
|
|
|
|
|
|
|
|
export class HealthRepository {
|
|
|
|
|
async checkDatabaseConnection() {
|
|
|
|
|
try {
|
2026-06-02 00:32:38 +07:00
|
|
|
logger.debug("Running database health check");
|
2026-07-27 21:54:31 +07:00
|
|
|
const db = getDatabase();
|
|
|
|
|
await db.execute(sql`SELECT 1 AS result`);
|
2026-06-02 00:32:38 +07:00
|
|
|
logger.debug("Database health check passed");
|
2026-06-01 21:44:29 +07:00
|
|
|
return { connected: true };
|
2026-06-02 00:32:38 +07:00
|
|
|
} catch (err: unknown) {
|
|
|
|
|
const message = err instanceof Error ? err.message : String(err);
|
|
|
|
|
logger.error({ error: message }, "Database health check failed");
|
|
|
|
|
return { connected: false, error: message };
|
2026-06-01 21:44:29 +07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const healthRepository = new HealthRepository();
|