public enum ErrorCode {
// Common
INVALID_INPUT_VALUE(400, "C001", " Invalid Input Value"),
METHOD_NOT_ALLOWED(405, "C002", " Invalid Input Value"),
....
HANDLE_ACCESS_DENIED(403, "C006", "Access is Denied"),
// Member
EMAIL_DUPLICATION(400, "M001", "Email is Duplication"),
LOGIN_INPUT_INVALID(400, "M002", "Login input is invalid"),
;
private final String code;
private final String message;
private int status;
ErrorCode(final int status, final String code, final String message) {
this.status = status;
this.message = message;
this.code = code;
}
}
@RequiredArgsConstructor
@Getter
public enum ErrorCode {
/*
* Account
* */
/* Create Account */
INVALID_ACCOUNT_PARAMETER(HttpStatus.BAD_REQUEST, 1001, "아이디, 비밀번호를 채워주세요"),
ID_PASSWORD_SAME(HttpStatus.BAD_REQUEST, 1002, "아이디와 동일한 비밀번호는 안됩니다"),
INVALID_PASSWORD(HttpStatus.BAD_REQUEST, 1003, "비밀번호는 8자 이상 20자 이하, 영어 소문자, 대문자, 특수문자, 숫자 중 3가지를 포함해야 합니다"),
DUPLICATE_ID(HttpStatus.BAD_REQUEST, 1004, "이미 등록된 아이디입니다")
/* Login */,
WRONG_PASSWORD(HttpStatus.BAD_REQUEST, 1005, "아이디 혹은 비밀번호가 잘못되었습니다"),
ACCOUNT_NOT_FOUND(HttpStatus.BAD_REQUEST, 1006, "아이디 혹은 비밀번호가 잘못되었습니다"),
UNAUTHENTICATED(HttpStatus.UNAUTHORIZED, 1007, "인증이 필요합니다"),
UNAUTHORIZED(HttpStatus.FORBIDDEN, 1008, "권한이 없습니다"),
/*
* Inspection Period
* */
PERIOD_OVERLAPPED(HttpStatus.BAD_REQUEST, 2001, "점검 기간이 중복됩니다"),
INVALID_PERIOD_INPUT(HttpStatus.BAD_REQUEST, 2002, "기간 설정이 유효하지 않습니다"),
PERIOD_NOT_FOUND(HttpStatus.NOT_FOUND, 2003, "해당하는 점검기간이 존재하지 않습니다"),
INSPECTION_ONGOING(HttpStatus.FORBIDDEN, 2004, "서버 점검 중입니다. %s ~ %s"),
/*
* ChannelServer
* */
CHANNEL_SERVER_NOT_FOUND(HttpStatus.INTERNAL_SERVER_ERROR, 3001, "채널 서버가 존재하지 않습니다"),
TOO_MANY_CONNECTIONS(HttpStatus.BAD_REQUEST, 3002, "최대 접속자수를 초과했습니다");
private final HttpStatus httpStatus;
private final int code;
private final String message;
}