Deploy FileDrop / deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
26 lines
1010 B
TypeScript
26 lines
1010 B
TypeScript
import { sql } from 'drizzle-orm';
|
|
import { db } from '../../../infrastructure/persistence/drizzle/index';
|
|
import logger from '../../../shared/logger/index';
|
|
import { getErrorMessage } from '../../../shared/utils/file';
|
|
|
|
/**
|
|
* Handles the health-check endpoint.
|
|
*
|
|
* Verifies database connectivity by executing a simple `SELECT 1` query.
|
|
* Returns a 200 response with `{ status: 'ok' }` when the database is
|
|
* reachable, or a 500 response with the error details when it is not.
|
|
*
|
|
* @param _req - The incoming HTTP request (unused).
|
|
* @returns A JSON response indicating the database health status.
|
|
*/
|
|
export const handleHealth = async (_req: Request): Promise<Response> => {
|
|
try {
|
|
await db.execute(sql`SELECT 1`);
|
|
return Response.json({ status: 'ok' }, { status: 200 });
|
|
} catch (error: unknown) {
|
|
const message = getErrorMessage(error);
|
|
logger.error('Health check failed', { error: message });
|
|
return Response.json({ status: 'error', error: message }, { status: 500 });
|
|
}
|
|
};
|