ZindagiAssan_Backend / src /shared /http /request-handler.ts
Talha812's picture
Upload 45 files
2c16c8c verified
raw
history blame contribute delete
941 Bytes
import { Response } from "express";
import { ApiResponseType } from "./api-response";
import { logger } from "../logger/logger";
import { HttpStatusCode } from "./status-code";
export class RequestHandler {
static async handle<T>(
serviceMethod: () => Promise<ApiResponseType<T>>,
res: Response
): Promise<void> {
try {
const result = await serviceMethod();
if (result.success) {
return res.success(result.data, result.message);
}
return res.error(
result.statusCode || HttpStatusCode.INTERNAL_SERVER_ERROR,
result.errorCode || "INTERNAL_SERVER_ERROR",
result.message,
result.errors
);
} catch (error) {
logger.error(error);
return res.error(HttpStatusCode.INTERNAL_SERVER_ERROR, "UNEXPECTED_ERROR", "An unexpected error occurred", [
{ message: (error as Error).message },
]);
}
}
}