70 lines
1.2 KiB
TypeScript
70 lines
1.2 KiB
TypeScript
|
|
import { Response } from "express";
|
||
|
|
import { logger } from "./logger";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 에러 처리 유틸리티
|
||
|
|
*/
|
||
|
|
export const handleError = (
|
||
|
|
res: Response,
|
||
|
|
error: any,
|
||
|
|
message: string = "서버 오류가 발생했습니다."
|
||
|
|
) => {
|
||
|
|
logger.error(`Error: ${message}`, error);
|
||
|
|
|
||
|
|
res.status(500).json({
|
||
|
|
success: false,
|
||
|
|
error: {
|
||
|
|
code: "SERVER_ERROR",
|
||
|
|
details: message,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 잘못된 요청 에러 처리
|
||
|
|
*/
|
||
|
|
export const handleBadRequest = (
|
||
|
|
res: Response,
|
||
|
|
message: string = "잘못된 요청입니다."
|
||
|
|
) => {
|
||
|
|
res.status(400).json({
|
||
|
|
success: false,
|
||
|
|
error: {
|
||
|
|
code: "BAD_REQUEST",
|
||
|
|
details: message,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 찾을 수 없음 에러 처리
|
||
|
|
*/
|
||
|
|
export const handleNotFound = (
|
||
|
|
res: Response,
|
||
|
|
message: string = "요청한 리소스를 찾을 수 없습니다."
|
||
|
|
) => {
|
||
|
|
res.status(404).json({
|
||
|
|
success: false,
|
||
|
|
error: {
|
||
|
|
code: "NOT_FOUND",
|
||
|
|
details: message,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 권한 없음 에러 처리
|
||
|
|
*/
|
||
|
|
export const handleUnauthorized = (
|
||
|
|
res: Response,
|
||
|
|
message: string = "권한이 없습니다."
|
||
|
|
) => {
|
||
|
|
res.status(403).json({
|
||
|
|
success: false,
|
||
|
|
error: {
|
||
|
|
code: "UNAUTHORIZED",
|
||
|
|
details: message,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
};
|