- src/utils/error.js 생성: 에러 응답 유틸리티 함수들 - reply.status() → reply.code() 통일 (auth, members, stats) - Fastify 표준 에러 응답 패턴 적용 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
/**
|
|
* 에러 응답 유틸리티
|
|
* 일관된 에러 응답 형식 제공
|
|
*/
|
|
|
|
/**
|
|
* 에러 응답 전송
|
|
* @param {object} reply - Fastify reply 객체
|
|
* @param {number} statusCode - HTTP 상태 코드
|
|
* @param {string} message - 에러 메시지
|
|
* @returns {object} 에러 응답
|
|
*/
|
|
export function sendError(reply, statusCode, message) {
|
|
return reply.code(statusCode).send({ error: message });
|
|
}
|
|
|
|
/**
|
|
* 400 Bad Request
|
|
*/
|
|
export function badRequest(reply, message = '잘못된 요청입니다.') {
|
|
return sendError(reply, 400, message);
|
|
}
|
|
|
|
/**
|
|
* 401 Unauthorized
|
|
*/
|
|
export function unauthorized(reply, message = '인증이 필요합니다.') {
|
|
return sendError(reply, 401, message);
|
|
}
|
|
|
|
/**
|
|
* 404 Not Found
|
|
*/
|
|
export function notFound(reply, message = '리소스를 찾을 수 없습니다.') {
|
|
return sendError(reply, 404, message);
|
|
}
|
|
|
|
/**
|
|
* 409 Conflict
|
|
*/
|
|
export function conflict(reply, message = '이미 존재하는 리소스입니다.') {
|
|
return sendError(reply, 409, message);
|
|
}
|
|
|
|
/**
|
|
* 500 Internal Server Error
|
|
*/
|
|
export function serverError(reply, message = '서버 오류가 발생했습니다.') {
|
|
return sendError(reply, 500, message);
|
|
}
|