diff --git a/apps/web/src/pages/api/health.ts b/apps/web/src/pages/api/health.ts new file mode 100644 index 000000000..8fd17aba1 --- /dev/null +++ b/apps/web/src/pages/api/health.ts @@ -0,0 +1,21 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; + +import { prisma } from '@documenso/prisma'; + +export default async function handler(_req: NextApiRequest, res: NextApiResponse) { + try { + await prisma.$queryRaw`SELECT 1`; + + return res.json({ + status: 'ok', + message: 'All systems operational', + }); + } catch (err) { + console.error(err); + + return res.status(500).json({ + status: 'error', + message: err.message, + }); + } +} diff --git a/packages/trpc/server/router.ts b/packages/trpc/server/router.ts index 519096da9..b20d5bc3f 100644 --- a/packages/trpc/server/router.ts +++ b/packages/trpc/server/router.ts @@ -4,12 +4,9 @@ import { documentRouter } from './document-router/router'; import { fieldRouter } from './field-router/router'; import { profileRouter } from './profile-router/router'; import { shareLinkRouter } from './share-link-router/router'; -import { procedure, router } from './trpc'; +import { router } from './trpc'; export const appRouter = router({ - health: procedure.query(() => { - return { status: 'ok' }; - }), auth: authRouter, profile: profileRouter, document: documentRouter,