From 776f88708765a47bb1fc381e48878f40e9171d04 Mon Sep 17 00:00:00 2001 From: gwansikk Date: Tue, 18 Feb 2025 00:52:08 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat(member):=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=A0=95=EC=B1=85=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/member/src/constants/message.ts | 79 ++++++++++++++++--- .../useActivityGroupMemberMutation.ts | 2 +- apps/member/src/types/api.ts | 4 +- 3 files changed, 73 insertions(+), 12 deletions(-) diff --git a/apps/member/src/constants/message.ts b/apps/member/src/constants/message.ts index fe9d9bec..5f149a78 100644 --- a/apps/member/src/constants/message.ts +++ b/apps/member/src/constants/message.ts @@ -31,14 +31,75 @@ export const MY_MESSAGE = { NO_MEMBERSHIP: '회비 신청 내역이 없어요.', NO_ACTIVITY: '활동 내역이 없어요.', } as const; -/** - * 에러 발생에 대한 사용자에게 안내할 메세지를 정의합니다. - * Server 팀과 협의하여 정의합니다. - */ + export const API_ERROR_MESSAGE = { - BOOKALREADYAPPLIEDFORLOANEXCEPTION: '이미 대여 신청한 도서이에요.', - ALREADYBORROWEDBOOKEXCEPTION: '해당 도서는 대여 상태에요.', - OVERDUEEXCEPTION: '도서 대여 연장은 최대 2회까지 가능해요.', - NOTFOUNDEXCEPTION: '요청하신 정보를 찾을 수 없어요.', - ALREADYAPPLIEDEXCEPTION: '이미 신청한 활동이에요.', + INVALID_VERIFICATION_REQUEST: '입력한 인증 정보가 올바르지 않아요.', + RESET_PASSWORD_INFORMATION_MISMATCH: '입력한 회원 정보가 일치하지 않아요.', + INVALID_PARENT_BOARD: '올바르지 않은 게시판 정보예요.', + INVALID_DATE_RANGE: '날짜 범위가 잘못되었어요.', + INVALID_DATE_TIME_RANGE: '시간 설정이 올바르지 않아요.', + INVALID_COLUMN: '정렬 기준이 잘못되었어요.', + UNSUPPORTED_EMOJI: '이모지를 사용할 수 없어요.', + INVALID_ROLE_CHANGE: '이 역할로 변경할 수 없어요.', + INVALID_FILE_ATTRIBUTE: '파일 속성이 올바르지 않아요.', + INVALID_GITHUB_URL: '입력한 GitHub 주소가 올바르지 않아요.', + INACTIVE_ACTIVITY_GROUP_MEMBER: '활동에 참여 중인 멤버만 변경할 수 있어요.', + RECRUITMENT_NOT_ACTIVE: '모집이 활성 상태가 아니에요.', + INVALID_RECRUITMENT_CLOSURE_WINDOW: '모집 종료일이 잘못되었어요.', + INDEX_OUT_OF_BOUNDS: '입력값이 허용된 범위를 벗어났어요.', + MISSING_PARAMETER: '필요한 정보가 누락되었어요.', + MALFORMED_JSON: '입력값이 올바르지 않아요.', + HTTP_MESSAGE_NOT_READABLE: '요청을 처리할 수 없어요.', + TYPE_MISMATCH: '입력한 값이 올바르지 않아요.', + ILLEGAL_ACCESS: '이 작업을 수행할 수 없어요.', + NUMBER_FORMAT_ERROR: '숫자 형식이 잘못되었어요.', + SORTING_ARGUMENT_MISMATCH: '정렬 기준과 방식이 맞지 않아요.', + INVALID_SORT_DIRECTION: '정렬 방식이 올바르지 않아요.', + UNKNOWN_PATH: '요청한 경로가 존재하지 않아요.', + ASSIGNMENT_BOARD_HAS_NO_DUE_DATE: '과제 마감 기한이 설정되지 않았어요.', + FEEDBACK_BOARD_HAS_NO_CONTENT: '피드백 내용을 입력해주세요.', + INVALID_BOARD_CATEGORY_HASHTAG: '해당 해시태그를 사용할 수 없어요.', + EXECUTIVE_ALREADY_REGISTERED: '이미 운영진으로 등록되어 있어요.', + EXECUTIVE_NOT_A_MEMBER: '운영진 등록 대상이 아니에요.', + METHOD_ARGUMENT_NOT_VALID: '입력값을 다시 확인해주세요.', + CONSTRAINT_VIOLATION: '제약 조건을 위반했어요.', + INVALID_DATA_ACCESS: '잘못된 요청이에요.', + ALERT_TYPE_NOT_FOUND: '알림 정보를 찾을 수 없어요.', + ILLEGAL_ARGUMENT: '입력값이 잘못되었어요.', + JWT_SECURITY_ERROR: '인증 정보를 확인할 수 없어요.', + NO_SUCH_FIELD: '해당 정보를 찾을 수 없어요.', + UNSUPPORTED_OPERATION: '이 작업은 지원되지 않아요.', + AUTHENTICATION_NOT_FOUND: '로그인이 필요해요.', + MEMBER_LOCKED: '계정이 잠겼어요. 관리자에게 문의해주세요.', + BAD_CREDENTIALS: '아이디 또는 비밀번호가 잘못되었어요.', + TOKEN_INVALID: '인증 정보가 올바르지 않아요.', + TOKEN_MISUSED: '잘못된 인증 방식이에요.', + TOKEN_FORGERY: '보안 문제로 요청을 처리할 수 없어요.', + MESSAGING_ERROR: '메시지를 전송할 수 없어요.', + EXPIRED_JWT: '로그인이 만료되었어요. 다시 로그인해주세요.', + MALFORMED_JWT: '인증 정보가 올바르지 않아요.', + UNSUPPORTED_JWT: '지원되지 않는 인증 방식이에요.', + USERNAME_NOT_FOUND: '입력한 사용자 정보를 찾을 수 없어요.', + ACCESS_DENIED: '이 작업을 수행할 수 없어요.', + PERMISSION_DENIED: '권한이 없어요.', + MEMBER_NOT_PART_OF_ACTIVITY_GROUP: '이 활동에 참여하고 있지 않아요.', + AUTHORIZATION_DENIED: '이 작업을 수행할 권한이 없어요.', + AUTHORIZATION_SERVICE_ERROR: '권한 확인 중 문제가 발생했어요.', + FILE_ACCESS_DENIED: '파일을 열 수 없어요.', + RESOURCE_NOT_FOUND: '요청한 정보를 찾을 수 없어요.', + NOT_FOUND: '해당 정보를 찾을 수 없어요.', + ELEMENT_NOT_FOUND: '입력한 값을 찾을 수 없어요.', + FILE_NOT_FOUND: '파일을 찾을 수 없어요.', + INVALID_PATH_VARIABLE: '입력한 경로가 올바르지 않아요.', + BOOK_ALREADY_BORROWED: '이미 대출 중인 도서예요.', + BOOK_ALREADY_RETURNED: '이미 반납된 도서예요.', + BOOK_ALREADY_APPLIED_FOR_LOAN: '이미 대출 신청한 도서예요.', + MAX_BORROW_LIMIT_EXCEEDED: '대출 가능한 도서 수를 초과했어요.', + BOOK_LOAN_EXTENSION_LIMIT_EXCEEDED: '대출 연장 횟수를 초과했어요.', + BOOK_BORROWER_MISMATCH: '대출 정보가 일치하지 않아요.', + INTERNAL_SERVER_ERROR: '서비스 이용 중 문제가 발생했어요.', + SECURITY_ERROR: '보안 문제가 발생했어요.', + TRANSACTION_SYSTEM_ERROR: '요청을 처리하는 중 문제가 발생했어요.', } as const; + +export type APIErrorMessage = keyof typeof API_ERROR_MESSAGE; diff --git a/apps/member/src/hooks/queries/activity/useActivityGroupMemberMutation.ts b/apps/member/src/hooks/queries/activity/useActivityGroupMemberMutation.ts index 1a9ec48e..ea8b5d4b 100644 --- a/apps/member/src/hooks/queries/activity/useActivityGroupMemberMutation.ts +++ b/apps/member/src/hooks/queries/activity/useActivityGroupMemberMutation.ts @@ -17,7 +17,7 @@ export function useActivityGroupMemberMutation() { isPending: activityGroupMemberIsPending, } = useMutation({ mutationFn: postActivityGroupMemberApply, - onSuccess: ({ success, data: data, errorMessage }) => { + onSuccess: ({ success, data, errorMessage }) => { if (errorMessage) { toast({ state: 'error', diff --git a/apps/member/src/types/api.ts b/apps/member/src/types/api.ts index cdf9fc2e..c996c3ca 100644 --- a/apps/member/src/types/api.ts +++ b/apps/member/src/types/api.ts @@ -1,4 +1,4 @@ -import { API_ERROR_MESSAGE } from '@constants/message'; +import { type APIErrorMessage } from '@constants/message'; /** * API Call 시 반환되는 기본 응답 타입입니다. @@ -9,7 +9,7 @@ import { API_ERROR_MESSAGE } from '@constants/message'; export type BaseResponse = { success: boolean; data: T; - errorMessage?: keyof typeof API_ERROR_MESSAGE; + errorMessage?: APIErrorMessage; }; /** From 989f957182ce280a798f42ad4619360c35139d7d Mon Sep 17 00:00:00 2001 From: Gwansik Kim Date: Tue, 18 Feb 2025 00:53:54 +0900 Subject: [PATCH 2/2] Create lovely-foxes-whisper.md --- .changeset/lovely-foxes-whisper.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/lovely-foxes-whisper.md diff --git a/.changeset/lovely-foxes-whisper.md b/.changeset/lovely-foxes-whisper.md new file mode 100644 index 00000000..7e4a154f --- /dev/null +++ b/.changeset/lovely-foxes-whisper.md @@ -0,0 +1,5 @@ +--- +"@clab-platforms/member": patch +--- + +feat(member): 예외 정책 업데이트