Add status api

This commit is contained in:
Maidul Islam
2023-01-06 10:51:15 -05:00
parent 9386efd7c4
commit cb60151c0e
4 changed files with 30 additions and 2 deletions
+7 -1
View File
@@ -1,7 +1,7 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires // eslint-disable-next-line @typescript-eslint/no-var-requires
const { patchRouterParam } = require('./utils/patchAsyncRoutes'); const { patchRouterParam } = require('./utils/patchAsyncRoutes');
import express from 'express'; import express, { Request, Response } from 'express';
import helmet from 'helmet'; import helmet from 'helmet';
import cors from 'cors'; import cors from 'cors';
import cookieParser from 'cookie-parser'; import cookieParser from 'cookie-parser';
@@ -43,6 +43,8 @@ import {
apiKeyData as v2APIKeyDataRouter, apiKeyData as v2APIKeyDataRouter,
} from './routes/v2'; } from './routes/v2';
import { healthCheck } from './routes/status';
import { getLogger } from './utils/logger'; import { getLogger } from './utils/logger';
import { RouteNotFoundError } from './utils/errors'; import { RouteNotFoundError } from './utils/errors';
import { requestErrorHandler } from './middleware/requestErrorHandler'; import { requestErrorHandler } from './middleware/requestErrorHandler';
@@ -101,6 +103,10 @@ app.use('/api/v2/secret', v2SecretRouter);
app.use('/api/v2/service-token', v2ServiceTokenDataRouter); app.use('/api/v2/service-token', v2ServiceTokenDataRouter);
app.use('/api/v2/api-key-data', v2APIKeyDataRouter); app.use('/api/v2/api-key-data', v2APIKeyDataRouter);
// Server status
app.use('/api', healthCheck)
//* Handle unrouted requests and respond with proper error message as well as status code //* Handle unrouted requests and respond with proper error message as well as status code
app.use((req, res, next) => { app.use((req, res, next) => {
if (res.headersSent) return next(); if (res.headersSent) return next();
+3 -1
View File
@@ -6,7 +6,9 @@ const apiLimiter = rateLimit({
max: 450, max: 450,
standardHeaders: true, standardHeaders: true,
legacyHeaders: false, legacyHeaders: false,
skip: (request) => request.path === '/healthcheck' skip: (request) => {
return request.path === '/healthcheck' || request.path === '/api/status'
}
}); });
// 5 requests per hour // 5 requests per hour
+5
View File
@@ -0,0 +1,5 @@
import healthCheck from './healthCheck';
export {
healthCheck
}
+15
View File
@@ -0,0 +1,15 @@
import express, { Request, Response } from 'express';
const router = express.Router();
router.get(
'/status',
(req: Request, res: Response) => {
res.status(200).json({
date: new Date(),
message: 'Ok',
})
}
);
export default router