|
@@ -0,0 +1,31 @@
|
|
|
|
|
+import Controller from 'if/controllers/controller.class.ts';
|
|
|
|
|
+
|
|
|
|
|
+export default new Controller(
|
|
|
|
|
+ '/health',
|
|
|
|
|
+ 'GET',
|
|
|
|
|
+ (req: Request, headers: Record<string, string>) => {
|
|
|
|
|
+ const url = new URL(req.url);
|
|
|
|
|
+ const started = Deno.env.get('STARTED');
|
|
|
|
|
+ let uptime = 0;
|
|
|
|
|
+ if (started) {
|
|
|
|
|
+ uptime = new Date().getTime() - new Date(started).getTime();
|
|
|
|
|
+ }
|
|
|
|
|
+ // const uptime = new Date().to - new Date(Deno.env.get("STARTED"));
|
|
|
|
|
+ const body = {
|
|
|
|
|
+ app: Deno.env.get('APPLICATION_NAME'),
|
|
|
|
|
+ version: Deno.env.get('VERSION'),
|
|
|
|
|
+ currentTime: new Date().toISOString(),
|
|
|
|
|
+ started,
|
|
|
|
|
+ uptime: uptime / 1000,
|
|
|
|
|
+ host: url.hostname,
|
|
|
|
|
+ status: 'healthy',
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const response = new Response(JSON.stringify(body));
|
|
|
|
|
+ for (const [name, value] of Object.entries(headers)) {
|
|
|
|
|
+ response.headers.set(name, value);
|
|
|
|
|
+ }
|
|
|
|
|
+ return response;
|
|
|
|
|
+ },
|
|
|
|
|
+ { 'Content-Type': 'application/json' },
|
|
|
|
|
+);
|