Skip to content

Commit

Permalink
refactor : 에러코드 도메인 별로 분할 (#129)
Browse files Browse the repository at this point in the history
* refactor : cart errorcode 분리

* refactor : event, issuedTicket 에러코드 분리

* feat : api example 에 cart issuedTicket 예시에러 추가
  • Loading branch information
ImNM authored Jan 15, 2023
1 parent 1339aa9 commit 69b037c
Show file tree
Hide file tree
Showing 10 changed files with 124 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import band.gosrock.common.annotation.ApiErrorExceptionsExample;
import band.gosrock.common.annotation.DevelopOnlyApi;
import band.gosrock.common.exception.GlobalErrorCode;
import band.gosrock.domain.domains.cart.exception.CartErrorCode;
import band.gosrock.domain.domains.issuedTicket.exception.IssuedTicketErrorCode;
import band.gosrock.domain.domains.order.exception.OrderErrorCode;
import band.gosrock.domain.domains.user.exception.UserErrorCode;
import band.gosrock.infrastructure.outer.api.oauth.exception.KakaoKauthErrorCode;
Expand Down Expand Up @@ -65,6 +67,18 @@ public void getUserErrorCode() {}
@ApiErrorCodeExample(OrderErrorCode.class)
public void getOrderErrorCode() {}

@GetMapping("/cart")
@DevelopOnlyApi
@Operation(summary = "주문 도메인 관련 에러 코드 나열")
@ApiErrorCodeExample(CartErrorCode.class)
public void getCartErrorCode() {}

@GetMapping("/issuedTicket")
@DevelopOnlyApi
@Operation(summary = "주문 도메인 관련 에러 코드 나열")
@ApiErrorCodeExample(IssuedTicketErrorCode.class)
public void getIssuedTicketErrorCode() {}

@GetMapping("/kakao")
@DevelopOnlyApi
@Operation(summary = "카카오 에러 코드 나열")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,7 @@ public enum GlobalErrorCode implements BaseErrorCode {
TOSS_PAYMENTS_UNHANDLED(INTERNAL_SERVER, "PAYMENTS_INTERNAL_SERVER", "관리자에게 연락부탁드려요."),
BAD_LOCK_IDENTIFIER(500, "AOP_500_1", "락의 키값이 잘못 세팅 되었습니다"),
BAD_FILE_EXTENSION(BAD_REQUEST, "FILE_400_1", "파일 확장자가 잘못 되었습니다."),
CART_NOT_FOUND(NOT_FOUND, "Cart_404_1", "Cart Not Found."),

ISSUED_TICKET_NOT_FOUND(NOT_FOUND, "IssuedTicket_404_1", "IssuedTicket Not Found"),
ISSUED_TICKET_NOT_MATCHED_USER(
FORBIDDEN, "IssuedTicket_403_1", "IssuedTicket User Not Matched"),
TOSS_PAYMENTS_ENUM_NOT_MATCH(INTERNAL_SERVER, "INFRA_500_1", "토스페이먼츠 이넘값 관련 매칭 안된 문제입니다."),

EVENT_NOT_FOUND(NOT_FOUND, "Event_404_1", "Event Not Found"),
HOST_NOT_AUTH_EVENT(FORBIDDEN, "Event_403_1", "Host Not Auth Event");
TOSS_PAYMENTS_ENUM_NOT_MATCH(INTERNAL_SERVER, "INFRA_500_1", "토스페이먼츠 이넘값 관련 매칭 안된 문제입니다.");
private Integer status;
private String code;
private String reason;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package band.gosrock.domain.domains.cart.exception;

import static band.gosrock.common.consts.DuDoongStatic.NOT_FOUND;

import band.gosrock.common.annotation.ExplainError;
import band.gosrock.common.dto.ErrorReason;
import band.gosrock.common.exception.BaseErrorCode;
import java.lang.reflect.Field;
import java.util.Objects;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum CartErrorCode implements BaseErrorCode {
@ExplainError("id로 카트를 찾을 때 못 찾으면 발생하는 오류")
CART_NOT_FOUND(NOT_FOUND, "Cart_404_1", "장바구니를 찾을 수 없습니다.");

private Integer status;
private String code;
private String reason;

@Override
public ErrorReason getErrorReason() {
return ErrorReason.builder().reason(reason).code(code).status(status).build();
}

@Override
public String getExplainError() throws NoSuchFieldException {
Field field = this.getClass().getField(this.name());
ExplainError annotation = field.getAnnotation(ExplainError.class);
return Objects.nonNull(annotation) ? annotation.value() : this.getReason();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@


import band.gosrock.common.exception.DuDoongCodeException;
import band.gosrock.common.exception.GlobalErrorCode;

public class CartNotFoundException extends DuDoongCodeException {

public static final DuDoongCodeException EXCEPTION = new CartNotFoundException();

private CartNotFoundException() {
super(GlobalErrorCode.CART_NOT_FOUND);
super(CartErrorCode.CART_NOT_FOUND);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package band.gosrock.domain.domains.event.exception;

import static band.gosrock.common.consts.DuDoongStatic.BAD_REQUEST;
import static band.gosrock.common.consts.DuDoongStatic.NOT_FOUND;

import band.gosrock.common.annotation.ExplainError;
import band.gosrock.common.dto.ErrorReason;
import band.gosrock.common.exception.BaseErrorCode;
import java.lang.reflect.Field;
import java.util.Objects;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum EventErrorCode implements BaseErrorCode {
EVENT_NOT_FOUND(NOT_FOUND, "Event_404_1", "이벤트를 찾을 수 없습니다."),
HOST_NOT_AUTH_EVENT(BAD_REQUEST, "Event_400_1", "Host Not Auth Event");
private Integer status;
private String code;
private String reason;

@Override
public ErrorReason getErrorReason() {
return ErrorReason.builder().reason(reason).code(code).status(status).build();
}

@Override
public String getExplainError() throws NoSuchFieldException {
Field field = this.getClass().getField(this.name());
ExplainError annotation = field.getAnnotation(ExplainError.class);
return Objects.nonNull(annotation) ? annotation.value() : this.getReason();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@


import band.gosrock.common.exception.DuDoongCodeException;
import band.gosrock.common.exception.GlobalErrorCode;

public class EventNotFoundException extends DuDoongCodeException {

public static final DuDoongCodeException EXCEPTION = new EventNotFoundException();

private EventNotFoundException() {
super(GlobalErrorCode.EVENT_NOT_FOUND);
super(EventErrorCode.EVENT_NOT_FOUND);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@


import band.gosrock.common.exception.DuDoongCodeException;
import band.gosrock.common.exception.GlobalErrorCode;

public class HostNotAuthEventException extends DuDoongCodeException {

public static final DuDoongCodeException EXCEPTION = new HostNotAuthEventException();

private HostNotAuthEventException() {
super(GlobalErrorCode.HOST_NOT_AUTH_EVENT);
super(EventErrorCode.HOST_NOT_AUTH_EVENT);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package band.gosrock.domain.domains.issuedTicket.exception;

import static band.gosrock.common.consts.DuDoongStatic.BAD_REQUEST;
import static band.gosrock.common.consts.DuDoongStatic.NOT_FOUND;

import band.gosrock.common.annotation.ExplainError;
import band.gosrock.common.dto.ErrorReason;
import band.gosrock.common.exception.BaseErrorCode;
import java.lang.reflect.Field;
import java.util.Objects;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum IssuedTicketErrorCode implements BaseErrorCode {
ISSUED_TICKET_NOT_FOUND(NOT_FOUND, "IssuedTicket_404_1", "IssuedTicket Not Found"),
ISSUED_TICKET_NOT_MATCHED_USER(
BAD_REQUEST, "IssuedTicket_400_1", "IssuedTicket User Not Matched");

private Integer status;
private String code;
private String reason;

@Override
public ErrorReason getErrorReason() {
return ErrorReason.builder().reason(reason).code(code).status(status).build();
}

@Override
public String getExplainError() throws NoSuchFieldException {
Field field = this.getClass().getField(this.name());
ExplainError annotation = field.getAnnotation(ExplainError.class);
return Objects.nonNull(annotation) ? annotation.value() : this.getReason();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@


import band.gosrock.common.exception.DuDoongCodeException;
import band.gosrock.common.exception.GlobalErrorCode;

public class IssuedTicketNotFoundException extends DuDoongCodeException {

public static final DuDoongCodeException EXCEPTION = new IssuedTicketNotFoundException();

private IssuedTicketNotFoundException() {
super(GlobalErrorCode.ISSUED_TICKET_NOT_FOUND);
super(IssuedTicketErrorCode.ISSUED_TICKET_NOT_FOUND);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@


import band.gosrock.common.exception.DuDoongCodeException;
import band.gosrock.common.exception.GlobalErrorCode;

public class IssuedTicketUserNotMatchedException extends DuDoongCodeException {

public static final DuDoongCodeException EXCEPTION = new IssuedTicketUserNotMatchedException();

private IssuedTicketUserNotMatchedException() {
super(GlobalErrorCode.ISSUED_TICKET_NOT_MATCHED_USER);
super(IssuedTicketErrorCode.ISSUED_TICKET_NOT_MATCHED_USER);
}
}

0 comments on commit 69b037c

Please sign in to comment.