import { HttpCodes } from "../config/errors";
import ErrorHandler from "../utils/errorHandler";
import { InDev } from "../config/env";
import { Request,Response, NextFunction } from "express";
export function errorMiddleware(err: ErrorHandler, req: Request, res: Response, next: NextFunction) {
const status = err.statusCode || HttpCodes.InternalServerError.code;
let message = err.message || HttpCodes.InternalServerError.message;
const errorDetails = InDev ? err : undefined;
// wrong mongoose object id error
if (err.name === 'CastError') {
message = `Resource not found.`;
}
// wrong jwt error
if (err.name === 'JsonWebTokenError') {
message = 'JSON Web Token is invalid. Try Again!!!';
}
// wrong jwt expired error
if (err.name === 'TokenExpiredError') {
message = 'JSON Web Token is expired. Try Again!!!';
}
res.status(status).json({
status,
message,
error: errorDetails,
});
}