diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/admin/member/service/AdminMemberService.java b/src/main/java/com/keunsori/keunsoriserver/domain/admin/member/service/AdminMemberService.java index 906468e9..48b1635e 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/admin/member/service/AdminMemberService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/admin/member/service/AdminMemberService.java @@ -12,7 +12,7 @@ import java.util.List; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.MEMBER_NOT_EXISTS_WITH_STUDENT_ID; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; @Service @Transactional(readOnly = true) diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/admin/reservation/service/AdminReservationService.java b/src/main/java/com/keunsori/keunsoriserver/domain/admin/reservation/service/AdminReservationService.java index a89d427e..8e4f79b2 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/admin/reservation/service/AdminReservationService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/admin/reservation/service/AdminReservationService.java @@ -23,7 +23,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.*; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; @Service @Transactional(readOnly = true) diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateLinkSendRequest.java b/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateLinkSendRequest.java index 569adf3a..86649d39 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateLinkSendRequest.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateLinkSendRequest.java @@ -4,12 +4,10 @@ import jakarta.validation.constraints.Pattern; import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.STUDENT_ID_REGEX; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.EMAIL_INVALID_FORMAT; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.STUDENT_ID_INVALID_FORMAT; public record PasswordUpdateLinkSendRequest( - @Pattern(regexp = STUDENT_ID_REGEX, message = STUDENT_ID_INVALID_FORMAT) + @Pattern(regexp = STUDENT_ID_REGEX, message = "학번 형식이 올바르지 않습니다.") String studentId, - @Email(message = EMAIL_INVALID_FORMAT) + @Email(message = "이메일 형식이 올바르지 않습니다.") String email ) {} diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateRequest.java b/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateRequest.java index 272dfadc..a8651d26 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateRequest.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/auth/dto/request/PasswordUpdateRequest.java @@ -4,11 +4,10 @@ import jakarta.validation.constraints.Pattern; import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.PASSWORD_REGEX; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.PASSWORD_INVALID_FORMAT; public record PasswordUpdateRequest( @NotNull(message = "비밀번호 변경을 위한 토큰값은 필수입니다.") String token, - @Pattern(regexp = PASSWORD_REGEX, message = PASSWORD_INVALID_FORMAT) + @Pattern(regexp = PASSWORD_REGEX, message = "비밀번호는 특수문자, 영문자, 숫자를 포함한 8자리 이상 문자열입니다.") String newPassword ) {} diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/auth/login/dto/LoginRequest.java b/src/main/java/com/keunsori/keunsoriserver/domain/auth/login/dto/LoginRequest.java index 4e32bd1e..3d4c896a 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/auth/login/dto/LoginRequest.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/auth/login/dto/LoginRequest.java @@ -2,7 +2,6 @@ import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.PASSWORD_REGEX; import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.STUDENT_ID_REGEX; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.PASSWORD_INVALID_FORMAT; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Pattern; @@ -19,7 +18,7 @@ public record LoginRequest( @NotBlank(message = "비밀번호를 입력해주세요.") @Pattern( regexp = PASSWORD_REGEX, - message = PASSWORD_INVALID_FORMAT + message = "비밀번호는 특수문자, 영문자, 숫자를 포함한 8자리 이상 문자열입니다." ) String password ) {} diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/auth/service/AuthService.java b/src/main/java/com/keunsori/keunsoriserver/domain/auth/service/AuthService.java index d7e3c97e..c5f2b00d 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/auth/service/AuthService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/auth/service/AuthService.java @@ -19,9 +19,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static com.keunsori.keunsoriserver.global.constant.UrlConstant.PASSWORD_CHANGE_LINK; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.STUDENT_ID_NOT_EXISTS; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.*; @Service @Slf4j diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/email/domain/EmailAuthentication.java b/src/main/java/com/keunsori/keunsoriserver/domain/email/domain/EmailAuthentication.java index 72a23b8c..84566954 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/email/domain/EmailAuthentication.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/email/domain/EmailAuthentication.java @@ -1,7 +1,5 @@ package com.keunsori.keunsoriserver.domain.email.domain; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.EMAIL_VERIFY_FAILED; - import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; @@ -11,6 +9,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + @Getter @RedisHash(value = "emailAuthentication", timeToLive = 300) @NoArgsConstructor(access = AccessLevel.PROTECTED) diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/email/service/EmailService.java b/src/main/java/com/keunsori/keunsoriserver/domain/email/service/EmailService.java index ca7dac52..49fc4b2b 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/email/service/EmailService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/email/service/EmailService.java @@ -1,8 +1,5 @@ package com.keunsori.keunsoriserver.domain.email.service; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.EMAIL_NOT_EXISTS_FOR_AUTH; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.EMAIL_VERIFY_NUMBER_GENERATION_FAILED; - import org.springframework.stereotype.Service; import com.keunsori.keunsoriserver.domain.email.domain.EmailAuthentication; @@ -16,6 +13,8 @@ import java.security.SecureRandom; import lombok.RequiredArgsConstructor; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + @Service @RequiredArgsConstructor public class EmailService { diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/member/domain/Member.java b/src/main/java/com/keunsori/keunsoriserver/domain/member/domain/Member.java index 5414f77e..95828565 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/member/domain/Member.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/member/domain/Member.java @@ -12,9 +12,7 @@ import java.time.LocalDateTime; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_STATUS_FOR_APPROVAL; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.STUDENT_ID_DOES_NOT_MATCH_WITH_EMAIL; - +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; @Entity @Getter diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/MemberPasswordUpdateRequest.java b/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/MemberPasswordUpdateRequest.java index c4d5c070..17402eb8 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/MemberPasswordUpdateRequest.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/MemberPasswordUpdateRequest.java @@ -4,13 +4,12 @@ import jakarta.validation.constraints.Pattern; import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.PASSWORD_REGEX; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.PASSWORD_INVALID_FORMAT; public record MemberPasswordUpdateRequest( @NotBlank(message = "기존 비밀번호를 입력해주세요.") String currentPassword, @NotBlank(message = "새 비밀번호를 입력해주세요.") - @Pattern(regexp = PASSWORD_REGEX, message = PASSWORD_INVALID_FORMAT) + @Pattern(regexp = PASSWORD_REGEX, message = "비밀번호는 특수문자, 영문자, 숫자를 포함한 8자리 이상 문자열입니다.") String newPassword ) { } diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/SignUpRequest.java b/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/SignUpRequest.java index 81a4506a..91d91ba8 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/SignUpRequest.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/member/dto/request/SignUpRequest.java @@ -2,7 +2,6 @@ import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.PASSWORD_REGEX; import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.STUDENT_ID_REGEX; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.PASSWORD_INVALID_FORMAT; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; @@ -23,7 +22,7 @@ public record SignUpRequest( String email, @NotBlank(message = "비밀번호는 필수 입력값입니다.") - @Pattern(regexp = PASSWORD_REGEX, message = PASSWORD_INVALID_FORMAT) + @Pattern(regexp = PASSWORD_REGEX, message = "비밀번호는 특수문자, 영문자, 숫자를 포함한 8자리 이상 문자열입니다.") String password, @NotBlank(message = "비밀번호를 한 번 더 입력해주세요.") diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/member/service/MemberService.java b/src/main/java/com/keunsori/keunsoriserver/domain/member/service/MemberService.java index 2f07f679..7027869f 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/member/service/MemberService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/member/service/MemberService.java @@ -12,11 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static com.keunsori.keunsoriserver.global.constant.RequestFormatConstant.PASSWORD_REGEX; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.*; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; @Service @Transactional(readOnly = true) diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/member/service/SignUpService.java b/src/main/java/com/keunsori/keunsoriserver/domain/member/service/SignUpService.java index 3b837bb9..85ff2850 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/member/service/SignUpService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/member/service/SignUpService.java @@ -1,8 +1,5 @@ package com.keunsori.keunsoriserver.domain.member.service; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.DUPLICATED_EMAIL; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.DUPLICATED_STUDENT_ID; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.PASSWORD_IS_DIFFERENT_FROM_CHECK; import com.keunsori.keunsoriserver.domain.member.domain.Member; import com.keunsori.keunsoriserver.domain.member.repository.MemberRepository; @@ -15,6 +12,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + @Service @RequiredArgsConstructor public class SignUpService { diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/validator/ReservationValidator.java b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/validator/ReservationValidator.java index 128b2f00..c0fb26d8 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/validator/ReservationValidator.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/validator/ReservationValidator.java @@ -1,11 +1,5 @@ package com.keunsori.keunsoriserver.domain.reservation.domain.validator; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.ANOTHER_RESERVATION_ALREADY_EXISTS; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_RESERVATION_DATE; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_RESERVATION_TIME; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.RESERVATION_ALREADY_COMPLETED; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.RESERVATION_NOT_EQUAL_MEMBER; - import org.springframework.stereotype.Component; import com.keunsori.keunsoriserver.domain.member.domain.Member; @@ -21,6 +15,8 @@ import java.time.LocalTime; import lombok.RequiredArgsConstructor; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + @Component @RequiredArgsConstructor public class ReservationValidator { @@ -119,4 +115,4 @@ private void validateReservationDateIsNotPast(LocalDate reservationDate) { throw new ReservationException(INVALID_RESERVATION_DATE); } } -} +} \ No newline at end of file diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/ReservationType.java b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/ReservationType.java index 2f5c65bf..13364aa1 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/ReservationType.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/ReservationType.java @@ -1,9 +1,9 @@ package com.keunsori.keunsoriserver.domain.reservation.domain.vo; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_RESERVATION_TYPE; - import com.keunsori.keunsoriserver.global.exception.ReservationException; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + public enum ReservationType { TEAM, PERSONAL, LESSON; diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/Session.java b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/Session.java index 3d92e178..e52ee02f 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/Session.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/domain/vo/Session.java @@ -1,9 +1,9 @@ package com.keunsori.keunsoriserver.domain.reservation.domain.vo; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_SESSION; - import com.keunsori.keunsoriserver.global.exception.ReservationException; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + public enum Session { VOCAL, KEYBOARD, DRUM, GUITAR, BASS, ALL; diff --git a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/service/ReservationService.java b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/service/ReservationService.java index a7e49506..addc7e50 100644 --- a/src/main/java/com/keunsori/keunsoriserver/domain/reservation/service/ReservationService.java +++ b/src/main/java/com/keunsori/keunsoriserver/domain/reservation/service/ReservationService.java @@ -1,7 +1,5 @@ package com.keunsori.keunsoriserver.domain.reservation.service; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.RESERVATION_NOT_EXISTS_WITH_ID; - import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,6 +21,8 @@ import lombok.RequiredArgsConstructor; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + @Service @Transactional(readOnly = true) @RequiredArgsConstructor diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/AuthException.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/AuthException.java index a4a1c8f1..518bc10c 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/AuthException.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/AuthException.java @@ -1,10 +1,12 @@ package com.keunsori.keunsoriserver.global.exception; -public class AuthException extends RuntimeException { +import lombok.Getter; - public AuthException(String message) { - super(message); +@Getter +public class AuthException extends RuntimeException { + private ErrorCode errorCode; + public AuthException(ErrorCode errorCode) { + super(errorCode.getMassage()); + this.errorCode = errorCode; } - - } diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/EmailException.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/EmailException.java index a1a2e3f3..3a3bcc99 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/EmailException.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/EmailException.java @@ -1,8 +1,12 @@ package com.keunsori.keunsoriserver.global.exception; -public class EmailException extends RuntimeException { +import lombok.Getter; - public EmailException(String message) { - super(message); +@Getter +public class EmailException extends RuntimeException { + private ErrorCode errorCode; + public EmailException(ErrorCode errorCode) { + super(errorCode.getMassage()); + this.errorCode = errorCode; } } diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorCode.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorCode.java new file mode 100644 index 00000000..a1da82d6 --- /dev/null +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorCode.java @@ -0,0 +1,59 @@ +package com.keunsori.keunsoriserver.global.exception; + +import lombok.Getter; + +@Getter +public enum ErrorCode { + INVALID_INPUT_VALUE(400, "COMMON-001", "유효성 검증에 실패했습니다."), + INTERNAL_SERVER_ERROR(500,"COMMON-002", "서버에서 처리할 수 없습니다."), + + // Member + MEMBER_NOT_EXISTS_WITH_STUDENT_ID(404, "MEMBER-001", "해당 학번을 가진 멤버가 존재하지 않습니다."), + DUPLICATED_STUDENT_ID(409, "MEMBER-002", "이미 존재하는 학번입니다."), + DUPLICATED_EMAIL(409, "MEMBER-003", "이미 존재하는 이메일입니다."), + PASSWORD_IS_DIFFERENT_FROM_CHECK(400, "MEMBER-004", "비밀번호와 비밀번호 확인 입력값이 다릅니다."), + PASSWORD_INVALID_FORMAT(400, "MEMBER-005", "비밀번호는 특수문자, 영문자, 숫자를 포함한 8자리 이상 문자열입니다."), + INVALID_CURRENT_PASSWORD(400, "MEMBER-006", "현재 비밀번호가 올바르지 않습니다."), + PASSWORD_SAME_AS_OLD(400, "MEMBER-007", "새 비밀번호가 기존 비밀번호와 동일합니다."), + STUDENT_ID_DOES_NOT_MATCH_WITH_EMAIL(400, "MEMBER-008", "가입한 학번과 이메일이 일치하지 않습니다"), + + // Admin Member + INVALID_STATUS_FOR_APPROVAL(400, "ADMIN-MEMBER-001", "회원이 승인 대기 상태가 아닙니다."), + + // Reservation + RESERVATION_NOT_EXISTS_WITH_ID(404, "RESERVATION-001", "해당 아이디 값을 가진 예약이 존재하지 않습니다."), + RESERVATION_NOT_EQUAL_MEMBER(403, "RESERVATION-002", "예약한 멤버가 아닙니다."), + RESERVATION_ALREADY_COMPLETED(400, "RESERVATION-003", "확정된 예약은 수정/취소할 수 없습니다."), + ANOTHER_RESERVATION_ALREADY_EXISTS(409, "RESERVATION-004", "해당 시간대에 다른 예약이 존재합니다."), + INVALID_RESERVATION_TIME(400, "RESERVATION-005", "예약 종료 시간은 예약 시작 시간보다 나중이어야 합니다."), + INVALID_RESERVATION_TYPE(400, "RESERVATION-006", "예약 타입이 잘못되었습니다."), + INVALID_RESERVATION_DATE(400, "RESERVATION-007", "예약 날짜는 과거 날짜면 안됩니다."), + INVALID_SESSION(404, "RESERVATION-008", "존재하지 않는 세션입니다."), + + // Admin Reservation + INVALID_DATE_SCHEDULE(400, "ADMIN-RESERVATION-001", "설정하는 날짜가 이미 지난 날짜입니다."), + INVALID_SCHEDULE_TIME(400, "ADMIN-RESERVATION-002", "시작 시간과 끝 시간의 순서가 올바르지 않습니다."), + + // Auth + STUDENT_ID_NOT_EXISTS(404, "AUTH-001", "존재하지 않는 학번입니다."), + INVALID_PASSWORD(401, "AUTH-002", "비밀번호가 일치하지 않습니다.") , + INVALID_REFRESH_TOKEN(401, "AUTH-003", "유효하지 않은 리프레시 토큰입니다."), + INVALID_TOKEN(401, "AUTH-004", "유효하지 않은 토큰입니다."), + EXPIRED_TOKEN(401, "AUTH-005", "만료된 토큰입니다."), + + // Email + EMAIL_NOT_EXISTS_FOR_AUTH(400, "EMAIL-001", "인증번호를 전송하지 않았거나 인증번호가 만료되었습니다."), + EMAIL_VERIFY_FAILED(400, "EMAIL-002", "인증번호가 일치하지 않습니다."), + EMAIL_VERIFY_NUMBER_GENERATION_FAILED(500, "EMAIL-003", "인증번호 생성중 에러가 발생했습니다."); + + + private final int status; + private final String code; + private final String massage; + + ErrorCode(int status, String code, String massage) { + this.status = status; + this.code = code; + this.massage = massage; + } +} diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorMessage.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorMessage.java deleted file mode 100644 index 9be44558..00000000 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorMessage.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.keunsori.keunsoriserver.global.exception; - -public class ErrorMessage { - // Member - public static final String MEMBER_NOT_EXISTS_WITH_STUDENT_ID = "해당 학번을 가진 멤버가 존재하지 않습니다."; - public static final String DUPLICATED_STUDENT_ID = "이미 존재하는 학번입니다."; - public static final String DUPLICATED_EMAIL = "이미 존재하는 이메일입니다."; - public static final String PASSWORD_IS_DIFFERENT_FROM_CHECK = "비밀번호와 비밀번호 확인 입력값이 다릅니다."; - public static final String PASSWORD_INVALID_FORMAT = "비밀번호는 특수문자, 영문자, 숫자를 포함한 8자리 이상 문자열입니다."; - public static final String STUDENT_ID_INVALID_FORMAT = "학번 형식이 올바르지 않습니다."; - public static final String EMAIL_INVALID_FORMAT = "이메일 형식이 올바르지 않습니다."; - public static final String INVALID_CURRENT_PASSWORD = "현재 비밀번호가 올바르지 않습니다."; - public static final String STUDENT_ID_DOES_NOT_MATCH_WITH_EMAIL = "가입한 학번과 이메일이 일치하지 않습니다"; - public static final String PASSWORD_SAME_AS_OLD = "새 비밀번호가 기존 비밀번호와 동일합니다."; - - // Admin Member - public static final String INVALID_STATUS_FOR_APPROVAL = "회원이 승인 대기 상태가 아닙니다."; - - // Reservation - public static final String RESERVATION_NOT_EXISTS_WITH_ID = "해당 아이디 값을 가진 예약이 존재하지 않습니다."; - public static final String RESERVATION_NOT_EQUAL_MEMBER = "예약한 멤버가 아닙니다."; - public static final String RESERVATION_ALREADY_COMPLETED = "확정된 예약은 수정/취소할 수 없습니다."; - public static final String ANOTHER_RESERVATION_ALREADY_EXISTS = "해당 시간대에 다른 예약이 존재합니다."; - public static final String INVALID_RESERVATION_TIME = "예약 종료 시간은 예약 시작 시간보다 나중이어야 합니다."; - public static final String INVALID_RESERVATION_TYPE = "예약 타입이 잘못되었습니다."; - public static final String INVALID_RESERVATION_DATE = "예약 날짜는 과거 날짜면 안됩니다."; - public static final String INVALID_SESSION = "존재하지 않는 세션입니다."; - - // Admin Reservation - public static final String INVALID_DATE_SCHEDULE = "설정하는 날짜가 이미 지난 날짜입니다."; - public static final String INVALID_SCHEDULE_TIME = "시작 시간과 끝 시간의 순서가 올바르지 않습니다."; - - // Auth - public static final String STUDENT_ID_NOT_EXISTS = "존재하지 않는 학번입니다."; - public static final String INVALID_PASSWORD = "비밀번호가 일치하지 않습니다."; - public static final String INVALID_REFRESH_TOKEN = "유효하지 않은 Refresh-token 입니다."; - public static final String INVALID_TOKEN = "유효하지 않은 토큰입니다."; - public static final String EXPIRED_TOKEN = "만료된 토큰입니다."; - - // Email - public static final String EMAIL_NOT_EXISTS_FOR_AUTH = "인증번호를 전송하지 않았거나 인증번호가 만료되었습니다."; - public static final String EMAIL_VERIFY_FAILED = "인증번호가 일치하지 않습니다."; - public static final String EMAIL_VERIFY_NUMBER_GENERATION_FAILED = "인증번호 생성중 에러가 발생했습니다."; - - // Random - public static final String INITIALIZED_PASSWORD_GENERATION_FAILED = "임시 비밀번호 생성에 실패하였습니다."; -} diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorResponse.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorResponse.java index 60c48d44..a5b3841c 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorResponse.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/ErrorResponse.java @@ -9,6 +9,9 @@ public class ErrorResponse { //응답코드 private int status; + //에러 구분 코드 + private String code; + //해당하는 메세지 private String message; } diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/GlobalExceptionHandler.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/GlobalExceptionHandler.java index b0b780cd..27783b66 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/GlobalExceptionHandler.java @@ -2,6 +2,7 @@ import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -22,46 +23,47 @@ public ResponseEntity handleMethodArgumentNotValidException(Metho .findFirst() .map(DefaultMessageSourceResolvable::getDefaultMessage) .orElse("유효성 검사 실패"); - - ErrorResponse response = new ErrorResponse(HttpStatus.BAD_REQUEST.value(),errorMessage); + ErrorCode errorCode = ErrorCode.INVALID_INPUT_VALUE; + ErrorResponse response = new ErrorResponse(errorCode.getStatus(), errorCode.getCode(), errorMessage); log.info(ex.getMessage()); - return new ResponseEntity<>(response,HttpStatus.BAD_REQUEST); + return new ResponseEntity<>(response,HttpStatus.valueOf(errorCode.getStatus())); } //Member 도메인 예외처리(400) @ExceptionHandler(MemberException.class) public ResponseEntity handleMemberException(MemberException ex) { - ErrorResponse response = new ErrorResponse(HttpStatus.BAD_REQUEST.value(), ex.getMessage()); + ErrorResponse response = new ErrorResponse(ex.getErrorCode().getStatus(), ex.getErrorCode().getCode(), ex.getMessage()); log.info(ex.getMessage()); - return new ResponseEntity<>(response,HttpStatus.BAD_REQUEST); + return new ResponseEntity<>(response, HttpStatusCode.valueOf(ex.getErrorCode().getStatus())); } //Auth 도메인 예외처리(401) @ExceptionHandler(AuthException.class) public ResponseEntity handleAuthException(AuthException ex) { - ErrorResponse response = new ErrorResponse(HttpStatus.UNAUTHORIZED.value(), ex.getMessage()); + ErrorResponse response = new ErrorResponse(ex.getErrorCode().getStatus(), ex.getErrorCode().getCode(), ex.getMessage()); log.info(ex.getMessage()); - return new ResponseEntity<>(response,HttpStatus.UNAUTHORIZED); + return new ResponseEntity<>(response,HttpStatusCode.valueOf(ex.getErrorCode().getStatus())); } @ExceptionHandler(ReservationException.class) public ResponseEntity handleReservationException(ReservationException ex) { - ErrorResponse response = new ErrorResponse(HttpStatus.BAD_REQUEST.value(), ex.getMessage()); + ErrorResponse response = new ErrorResponse(ex.getErrorCode().getStatus(), ex.getErrorCode().getCode(), ex.getMessage()); log.info(ex.getMessage()); - return ResponseEntity.badRequest().body(response); + return new ResponseEntity<>(response, HttpStatusCode.valueOf(ex.getErrorCode().getStatus())); } @ExceptionHandler(EmailException.class) public ResponseEntity handleEmailException(ReservationException ex) { - ErrorResponse response = new ErrorResponse(HttpStatus.BAD_REQUEST.value(), ex.getMessage()); + ErrorResponse response = new ErrorResponse(ex.getErrorCode().getStatus(), ex.getErrorCode().getCode(), ex.getMessage()); log.info(ex.getMessage()); - return ResponseEntity.badRequest().body(response); + return new ResponseEntity<>(response, HttpStatusCode.valueOf(ex.getErrorCode().getStatus())); } @ExceptionHandler(Exception.class) public ResponseEntity handleException(Exception ex) { - ErrorResponse response = new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage()); + ErrorCode errorCode = ErrorCode.INTERNAL_SERVER_ERROR; + ErrorResponse response = new ErrorResponse(errorCode.getStatus(), errorCode.getCode(), ex.getMessage()); log.error(ex.getMessage(), ex); - return ResponseEntity.internalServerError().body(response); + return new ResponseEntity<>(response, HttpStatusCode.valueOf(errorCode.getStatus())); } } diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/MemberException.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/MemberException.java index 3f99260b..b911e6aa 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/MemberException.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/MemberException.java @@ -1,7 +1,13 @@ package com.keunsori.keunsoriserver.global.exception; +import lombok.Getter; + +@Getter public class MemberException extends RuntimeException { - public MemberException(String message) { - super(message); + private ErrorCode errorCode; + + public MemberException(ErrorCode errorCode) { + super(errorCode.getMassage()); + this.errorCode = errorCode; } } diff --git a/src/main/java/com/keunsori/keunsoriserver/global/exception/ReservationException.java b/src/main/java/com/keunsori/keunsoriserver/global/exception/ReservationException.java index 01a6bf8f..c3c1876c 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/exception/ReservationException.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/exception/ReservationException.java @@ -1,8 +1,12 @@ package com.keunsori.keunsoriserver.global.exception; -public class ReservationException extends RuntimeException { +import lombok.Getter; - public ReservationException(String errorMessage) { - super(errorMessage); +@Getter +public class ReservationException extends RuntimeException { + private ErrorCode errorCode; + public ReservationException(ErrorCode errorCode) { + super(errorCode.getMassage()); + this.errorCode = errorCode; } } diff --git a/src/main/java/com/keunsori/keunsoriserver/global/security/JwtAuthenticationFilter.java b/src/main/java/com/keunsori/keunsoriserver/global/security/JwtAuthenticationFilter.java index 80f9f68a..f949ddd8 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/security/JwtAuthenticationFilter.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/security/JwtAuthenticationFilter.java @@ -20,8 +20,7 @@ import java.io.IOException; import java.util.List; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_REFRESH_TOKEN; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.STUDENT_ID_NOT_EXISTS; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; @Component @RequiredArgsConstructor diff --git a/src/main/java/com/keunsori/keunsoriserver/global/util/MemberUtil.java b/src/main/java/com/keunsori/keunsoriserver/global/util/MemberUtil.java index 1cb4932d..33314387 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/util/MemberUtil.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/util/MemberUtil.java @@ -1,7 +1,5 @@ package com.keunsori.keunsoriserver.global.util; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.MEMBER_NOT_EXISTS_WITH_STUDENT_ID; - import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; @@ -12,6 +10,8 @@ import lombok.RequiredArgsConstructor; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; + @Component @RequiredArgsConstructor public class MemberUtil { diff --git a/src/main/java/com/keunsori/keunsoriserver/global/util/TokenUtil.java b/src/main/java/com/keunsori/keunsoriserver/global/util/TokenUtil.java index d210ea12..25ac10c3 100644 --- a/src/main/java/com/keunsori/keunsoriserver/global/util/TokenUtil.java +++ b/src/main/java/com/keunsori/keunsoriserver/global/util/TokenUtil.java @@ -1,7 +1,6 @@ package com.keunsori.keunsoriserver.global.util; import com.keunsori.keunsoriserver.domain.member.domain.vo.MemberStatus; -import com.keunsori.keunsoriserver.global.constant.TokenConstant; import com.keunsori.keunsoriserver.global.exception.AuthException; import com.keunsori.keunsoriserver.global.properties.JwtProperties; import io.jsonwebtoken.Claims; @@ -9,16 +8,13 @@ import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import lombok.RequiredArgsConstructor; -import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.Date; - +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static com.keunsori.keunsoriserver.domain.member.domain.vo.MemberStatus.일반; import static com.keunsori.keunsoriserver.global.constant.TokenConstant.PASSWORD_UPDATE_TOKEN_VALIDITY_TIME; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.EXPIRED_TOKEN; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_TOKEN; @Component @RequiredArgsConstructor diff --git a/src/test/java/com/keunsori/keunsoriserver/admin/member/api/AdminMemberApiTest.java b/src/test/java/com/keunsori/keunsoriserver/admin/member/api/AdminMemberApiTest.java index ea0a9f10..c9ade716 100644 --- a/src/test/java/com/keunsori/keunsoriserver/admin/member/api/AdminMemberApiTest.java +++ b/src/test/java/com/keunsori/keunsoriserver/admin/member/api/AdminMemberApiTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.*; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static io.restassured.RestAssured.given; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.http.HttpHeaders.CONTENT_TYPE; @@ -72,7 +72,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_CURRENT_PASSWORD); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_CURRENT_PASSWORD.getMassage()); } @Test @@ -113,11 +113,11 @@ void login() throws JsonProcessingException { when(). delete("/admin/members/0"). then(). - statusCode(HttpStatus.SC_BAD_REQUEST). + statusCode(HttpStatus.SC_NOT_FOUND). extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(MEMBER_NOT_EXISTS_WITH_STUDENT_ID); + Assertions.assertThat(errorMessage).isEqualTo(MEMBER_NOT_EXISTS_WITH_STUDENT_ID.getMassage()); } @Test @@ -170,6 +170,6 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_STATUS_FOR_APPROVAL); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_STATUS_FOR_APPROVAL.getMassage()); } } diff --git a/src/test/java/com/keunsori/keunsoriserver/admin/reservation/api/AdminReservationApiTest.java b/src/test/java/com/keunsori/keunsoriserver/admin/reservation/api/AdminReservationApiTest.java index 9885c950..f5701f41 100644 --- a/src/test/java/com/keunsori/keunsoriserver/admin/reservation/api/AdminReservationApiTest.java +++ b/src/test/java/com/keunsori/keunsoriserver/admin/reservation/api/AdminReservationApiTest.java @@ -20,7 +20,7 @@ import java.util.ArrayList; import java.util.List; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.*; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static io.restassured.RestAssured.given; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.http.HttpHeaders.CONTENT_TYPE; @@ -121,7 +121,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_SCHEDULE_TIME); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_SCHEDULE_TIME.getMassage()); } @Test @@ -148,7 +148,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_SCHEDULE_TIME); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_SCHEDULE_TIME.getMassage()); } @Test @@ -166,7 +166,7 @@ void login() throws JsonProcessingException { statusCode(HttpStatus.SC_BAD_REQUEST). extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_DATE_SCHEDULE); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_DATE_SCHEDULE.getMassage()); } @Test void 종료시간이_시작시간보다_앞서는_경우_일자별_설정에_실패한다() throws JsonProcessingException { @@ -184,7 +184,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_SCHEDULE_TIME); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_SCHEDULE_TIME.getMassage()); } @Test @@ -275,6 +275,6 @@ void login() throws JsonProcessingException { .extract() .jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(RESERVATION_ALREADY_COMPLETED); + Assertions.assertThat(errorMessage).isEqualTo(RESERVATION_ALREADY_COMPLETED.getMassage()); } } diff --git a/src/test/java/com/keunsori/keunsoriserver/auth/service/AuthServiceTest.java b/src/test/java/com/keunsori/keunsoriserver/auth/service/AuthServiceTest.java index f844abc0..add49c4a 100644 --- a/src/test/java/com/keunsori/keunsoriserver/auth/service/AuthServiceTest.java +++ b/src/test/java/com/keunsori/keunsoriserver/auth/service/AuthServiceTest.java @@ -17,8 +17,7 @@ import java.util.Optional; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.MEMBER_NOT_EXISTS_WITH_STUDENT_ID; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.STUDENT_ID_DOES_NOT_MATCH_WITH_EMAIL; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.times; @@ -79,7 +78,7 @@ public class AuthServiceTest { // when & then Assertions.assertThatThrownBy(() -> authService.sendPasswordUpdateLink(request)) .isInstanceOf(MemberException.class) - .hasMessage(MEMBER_NOT_EXISTS_WITH_STUDENT_ID); + .hasMessage(MEMBER_NOT_EXISTS_WITH_STUDENT_ID.getMassage()); } @Test @@ -101,6 +100,6 @@ public class AuthServiceTest { // when & then Assertions.assertThatThrownBy(() -> authService.sendPasswordUpdateLink(request)) .isInstanceOf(MemberException.class) - .hasMessage(STUDENT_ID_DOES_NOT_MATCH_WITH_EMAIL); + .hasMessage(STUDENT_ID_DOES_NOT_MATCH_WITH_EMAIL.getMassage()); } } diff --git a/src/test/java/com/keunsori/keunsoriserver/member/api/MemberApiTest.java b/src/test/java/com/keunsori/keunsoriserver/member/api/MemberApiTest.java index 3c62c7d8..63e82baf 100644 --- a/src/test/java/com/keunsori/keunsoriserver/member/api/MemberApiTest.java +++ b/src/test/java/com/keunsori/keunsoriserver/member/api/MemberApiTest.java @@ -1,6 +1,6 @@ package com.keunsori.keunsoriserver.member.api; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.*; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static io.restassured.RestAssured.given; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.http.HttpHeaders.CONTENT_TYPE; @@ -49,10 +49,11 @@ void login() throws JsonProcessingException { .when() .post("/signup") .then() - .statusCode(400) - .extract().jsonPath().getString("message"); + .statusCode(409) + .extract().jsonPath(). + getString("message"); - Assertions.assertThat(message).isEqualTo(DUPLICATED_STUDENT_ID); + Assertions.assertThat(message).isEqualTo(DUPLICATED_STUDENT_ID.getMassage()); } @Test @@ -88,10 +89,10 @@ void login() throws JsonProcessingException { .when() .post("/signup") .then() - .statusCode(400) + .statusCode(409) .extract().jsonPath().getString("message"); - Assertions.assertThat(message).isEqualTo(DUPLICATED_STUDENT_ID); + Assertions.assertThat(message).isEqualTo(DUPLICATED_STUDENT_ID.getMassage()); } @@ -138,7 +139,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_CURRENT_PASSWORD); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_CURRENT_PASSWORD.getMassage()); } @Test @@ -146,7 +147,6 @@ void login() throws JsonProcessingException { MemberPasswordUpdateRequest request = new MemberPasswordUpdateRequest("test123!", "test123!"); - String errorMessage = given(). header(AUTHORIZATION, authorizationValue). header(CONTENT_TYPE, "application/json"). @@ -158,7 +158,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(PASSWORD_SAME_AS_OLD); + Assertions.assertThat(errorMessage).isEqualTo(PASSWORD_SAME_AS_OLD.getMassage()); } @@ -179,6 +179,6 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(PASSWORD_INVALID_FORMAT); + Assertions.assertThat(errorMessage).isEqualTo(PASSWORD_INVALID_FORMAT.getMassage()); } } diff --git a/src/test/java/com/keunsori/keunsoriserver/reservation/api/ReservationApiTest.java b/src/test/java/com/keunsori/keunsoriserver/reservation/api/ReservationApiTest.java index d5c90907..a989a51e 100644 --- a/src/test/java/com/keunsori/keunsoriserver/reservation/api/ReservationApiTest.java +++ b/src/test/java/com/keunsori/keunsoriserver/reservation/api/ReservationApiTest.java @@ -1,8 +1,6 @@ package com.keunsori.keunsoriserver.reservation.api; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.ANOTHER_RESERVATION_ALREADY_EXISTS; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_RESERVATION_TIME; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.RESERVATION_ALREADY_COMPLETED; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import static io.restassured.RestAssured.given; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.http.HttpHeaders.CONTENT_TYPE; @@ -135,7 +133,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_RESERVATION_TIME); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_RESERVATION_TIME.getMassage()); } @Test @@ -160,7 +158,7 @@ void login() throws JsonProcessingException { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(INVALID_RESERVATION_TIME); + Assertions.assertThat(errorMessage).isEqualTo(INVALID_RESERVATION_TIME.getMassage()); } static Stream overlapReservationTimeTestData() { @@ -209,11 +207,11 @@ static Stream overlapReservationTimeTestData() { when(). post("/reservation"). then(). - statusCode(HttpStatus.SC_BAD_REQUEST). + statusCode(HttpStatus.SC_CONFLICT). extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(ANOTHER_RESERVATION_ALREADY_EXISTS); + Assertions.assertThat(errorMessage).isEqualTo(ANOTHER_RESERVATION_ALREADY_EXISTS.getMassage()); } @ParameterizedTest @@ -289,7 +287,7 @@ static Stream overlapReservationTimeTestData() { when(). post("/reservation"). then(). - statusCode(HttpStatus.SC_BAD_REQUEST); + statusCode(HttpStatus.SC_CONFLICT); } @ParameterizedTest @@ -328,11 +326,11 @@ static Stream overlapReservationTimeTestData() { when(). post("/reservation"). then(). - statusCode(HttpStatus.SC_BAD_REQUEST). + statusCode(HttpStatus.SC_CONFLICT). extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(ANOTHER_RESERVATION_ALREADY_EXISTS); + Assertions.assertThat(errorMessage).isEqualTo(ANOTHER_RESERVATION_ALREADY_EXISTS.getMassage()); } @ParameterizedTest @@ -370,7 +368,7 @@ static Stream overlapReservationTimeTestData() { when(). post("/reservation"). then(). - statusCode(HttpStatus.SC_BAD_REQUEST); + statusCode(HttpStatus.SC_CONFLICT); } static Stream successReservationTimeTestData() { @@ -471,6 +469,6 @@ static Stream successReservationTimeTestData() { extract(). jsonPath().get("message"); - Assertions.assertThat(errorMessage).isEqualTo(RESERVATION_ALREADY_COMPLETED); + Assertions.assertThat(errorMessage).isEqualTo(RESERVATION_ALREADY_COMPLETED.getMassage()); } } diff --git a/src/test/java/com/keunsori/keunsoriserver/reservation/domain/ReservationTypeTest.java b/src/test/java/com/keunsori/keunsoriserver/reservation/domain/ReservationTypeTest.java index 54c669c3..35ae01d5 100644 --- a/src/test/java/com/keunsori/keunsoriserver/reservation/domain/ReservationTypeTest.java +++ b/src/test/java/com/keunsori/keunsoriserver/reservation/domain/ReservationTypeTest.java @@ -1,6 +1,6 @@ package com.keunsori.keunsoriserver.reservation.domain; -import static com.keunsori.keunsoriserver.global.exception.ErrorMessage.INVALID_RESERVATION_TYPE; +import static com.keunsori.keunsoriserver.global.exception.ErrorCode.*; import org.assertj.core.api.Assertions; import org.junit.jupiter.params.ParameterizedTest; @@ -47,6 +47,6 @@ public static Stream reservationConvertTestData() { Assertions.assertThatThrownBy( () -> ReservationType.from(actual)) .isInstanceOf(ReservationException.class) - .hasMessage(INVALID_RESERVATION_TYPE); + .hasMessage(INVALID_RESERVATION_TYPE.getMassage()); } }