diff --git a/src/api-docs/openAPIResponseBuilders.ts b/src/api-docs/openAPIResponseBuilders.ts index f316ab6e..2b5c0c68 100644 --- a/src/api-docs/openAPIResponseBuilders.ts +++ b/src/api-docs/openAPIResponseBuilders.ts @@ -3,7 +3,7 @@ import type { z } from "zod"; import { ServiceResponseSchema } from "@/common/models/serviceResponse"; -export function createApiResponse(schema: z.ZodTypeAny, description: string, statusCode = StatusCodes.OK) { +export function createApiResponse(schema: z.ZodType, description: string, statusCode = StatusCodes.OK) { return { [statusCode]: { description, @@ -21,7 +21,7 @@ export function createApiResponse(schema: z.ZodTypeAny, description: string, sta // import { ResponseConfig } from '@asteasolutions/zod-to-openapi'; // import { ApiResponseConfig } from '@common/models/openAPIResponseConfig'; // export type ApiResponseConfig = { -// schema: z.ZodTypeAny; +// schema: z.ZodType; // description: string; // statusCode: StatusCodes; // }; diff --git a/src/common/middleware/rateLimiter.ts b/src/common/middleware/rateLimiter.ts index 0a939775..575ca2a7 100644 --- a/src/common/middleware/rateLimiter.ts +++ b/src/common/middleware/rateLimiter.ts @@ -1,5 +1,5 @@ import type { Request } from "express"; -import { rateLimit } from "express-rate-limit"; +import { ipKeyGenerator, rateLimit } from "express-rate-limit"; import { env } from "@/common/utils/envConfig"; @@ -9,7 +9,7 @@ const rateLimiter = rateLimit({ message: "Too many requests, please try again later.", standardHeaders: true, windowMs: 15 * 60 * env.COMMON_RATE_LIMIT_WINDOW_MS, - keyGenerator: (req: Request) => req.ip as string, + keyGenerator: (req: Request) => ipKeyGenerator(req.ip as string), // IPv6 Compatible }); export default rateLimiter; diff --git a/src/common/models/serviceResponse.ts b/src/common/models/serviceResponse.ts index de354151..8ca93e35 100644 --- a/src/common/models/serviceResponse.ts +++ b/src/common/models/serviceResponse.ts @@ -23,7 +23,7 @@ export class ServiceResponse { } } -export const ServiceResponseSchema = (dataSchema: T) => +export const ServiceResponseSchema = (dataSchema: T) => z.object({ success: z.boolean(), message: z.string(), diff --git a/src/server.ts b/src/server.ts index eff5c53d..bb60553f 100644 --- a/src/server.ts +++ b/src/server.ts @@ -31,7 +31,7 @@ app.use("/health-check", healthCheckRouter); app.use("/users", userRouter); // Swagger UI -app.use(openAPIRouter); +app.use("/api-docs", openAPIRouter); // Error handlers app.use(errorHandler());