2026-01-20 22:56:14 +00:00
|
|
|
import type { NextFunction, Request, Response } from "express";
|
|
|
|
|
import { logger } from "@/utils/logger.js";
|
2026-03-12 11:12:46 -07:00
|
|
|
import { AppError } from "@/utils/AppError.js";
|
2025-04-20 11:29:53 -07:00
|
|
|
|
2026-03-12 11:12:46 -07:00
|
|
|
const handleErrors = (error: unknown, req: Request, res: Response, _next: NextFunction) => {
|
|
|
|
|
const status = error instanceof AppError ? error.status || 500 : 500;
|
2026-03-25 13:48:50 -07:00
|
|
|
const message = error instanceof AppError ? error.message : error instanceof Error ? error.message : "Server error";
|
2026-03-12 11:12:46 -07:00
|
|
|
const service = error instanceof AppError ? error.service : "unknownService";
|
|
|
|
|
const method = error instanceof AppError ? error.method : "unknownMethod";
|
2025-04-20 11:29:53 -07:00
|
|
|
logger.error({
|
|
|
|
|
message: message,
|
|
|
|
|
service: service,
|
2026-03-12 11:12:46 -07:00
|
|
|
method: method,
|
2026-03-25 13:48:50 -07:00
|
|
|
stack: error instanceof Error ? error.stack : undefined,
|
2026-03-12 11:12:46 -07:00
|
|
|
details: error instanceof AppError ? error.details : undefined,
|
2025-04-20 11:29:53 -07:00
|
|
|
});
|
2026-01-20 22:56:14 +00:00
|
|
|
res.status(status).json({
|
2025-04-20 11:29:53 -07:00
|
|
|
status,
|
|
|
|
|
msg: message,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export { handleErrors };
|