phosphat-report-app/app/routes/health.tsx
2025-07-24 12:39:15 +03:00

37 lines
999 B
TypeScript

import type { LoaderFunctionArgs } from "@remix-run/node";
import { json } from "@remix-run/node";
import { prisma } from "~/utils/db.server";
export const loader = async ({ request }: LoaderFunctionArgs) => {
try {
// Check database connectivity
await prisma.$queryRaw`SELECT 1`;
return json({
status: "ok",
timestamp: new Date().toISOString(),
uptime: process.uptime(),
environment: process.env.NODE_ENV,
database: "connected"
}, {
status: 200,
headers: {
"Cache-Control": "no-cache, no-store, must-revalidate",
"Content-Type": "application/json"
}
});
} catch (error) {
return json({
status: "error",
timestamp: new Date().toISOString(),
error: "Database connection failed",
database: "disconnected"
}, {
status: 503,
headers: {
"Cache-Control": "no-cache, no-store, must-revalidate",
"Content-Type": "application/json"
}
});
}
};