diff --git a/api/src/routes/-/healthz.ts b/api/src/routes/-/healthz.ts
index bfd98a22..a42575f8 100644
--- a/api/src/routes/-/healthz.ts
+++ b/api/src/routes/-/healthz.ts
@@ -1,10 +1,17 @@
import { Router, Response, Request } from "express";
import { route } from "@fosscord/api";
+import { getConnection } from "typeorm";
const router = Router();
router.get("/", route({}), (req: Request, res: Response) => {
- res.sendStatus(200);
+ try {
+ // test that the database is alive & responding
+ getConnection();
+ return res.sendStatus(200);
+ } catch(e) {
+ res.sendStatus(503);
+ }
});
export default router;
diff --git a/api/src/routes/-/metrics.ts b/api/src/routes/-/metrics.ts
deleted file mode 100644
index bfd98a22..00000000
--- a/api/src/routes/-/metrics.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Router, Response, Request } from "express";
-import { route } from "@fosscord/api";
-
-const router = Router();
-
-router.get("/", route({}), (req: Request, res: Response) => {
- res.sendStatus(200);
-});
-
-export default router;
diff --git a/api/src/routes/-/readyz.ts b/api/src/routes/-/readyz.ts
index bfd98a22..a42575f8 100644
--- a/api/src/routes/-/readyz.ts
+++ b/api/src/routes/-/readyz.ts
@@ -1,10 +1,17 @@
import { Router, Response, Request } from "express";
import { route } from "@fosscord/api";
+import { getConnection } from "typeorm";
const router = Router();
router.get("/", route({}), (req: Request, res: Response) => {
- res.sendStatus(200);
+ try {
+ // test that the database is alive & responding
+ getConnection();
+ return res.sendStatus(200);
+ } catch(e) {
+ res.sendStatus(503);
+ }
});
export default router;
|