Skip to content

Commit

Permalink
[MERGE/#142] FeignErrorDecoder에 구글 소셜 로그인 Exception 분기 추가
Browse files Browse the repository at this point in the history
[FEAT] #142 - FeignErrorDecoder에 구글 소셜 로그인 Exception 분기 추가
  • Loading branch information
ckkim817 authored Jul 25, 2024
2 parents 14163bd + 41f780c commit 700ccaf
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class FeignErrorDecoder implements ErrorDecoder {
public Exception decode(String methodKey, Response response) {

String message;
String error;

if (response.body() != null) {
try {
Expand All @@ -29,6 +30,7 @@ public Exception decode(String methodKey, Response response) {
// 응답결과 JSON 파싱
JSONObject jsonObject = new JSONObject(body);
message = jsonObject.optString("message", "message 필드가 존재하지 않습니다.");
error = jsonObject.optString("error", "error 필드가 존재하지 않습니다.");
} catch (IOException | JSONException e) {
log.error(methodKey + "Feign 요청이 실패한 후 받은 Response Body를 객체로 변환하는 과정에서 오류가 발생했습니다.", e);
throw new CustomException(ErrorType.INTERNAL_FEIGN_ERROR);
Expand All @@ -48,8 +50,16 @@ public Exception decode(String methodKey, Response response) {
throw new CustomException(ErrorType.NO_VERIFICATION_REQUEST_HISTORY);
}

if (error.equals("redirect_uri_mismatch")) {
throw new CustomException(ErrorType.REDIRECT_URI_MISMATCH_ERROR);
}
if (error.equals("invalid_grant")) {
throw new CustomException(ErrorType.EXPIRED_AUTHENTICATION_CODE);
}

log.error(String.valueOf(response.status()));
log.error(message);
log.error(error);
log.error(String.valueOf(response.headers()));

throw new CustomException(ErrorType.INTERNAL_SERVER_ERROR);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ public enum ErrorType {
NOT_MEMBERS_APPOINTMENT_ERROR(HttpStatus.BAD_REQUEST, "40020", "해당 회원의 약속이 아닙니다."),
NOT_VALID_OCR_IMAGE(HttpStatus.BAD_REQUEST, "40021", "이미지 인식에 실패했습니다."),
INVALID_SAME_SENIOR(HttpStatus.BAD_REQUEST, "40022", "이미 약속을 신청한 선배입니다."),
NOT_PENDING_APPOINTMENT_ERROR(HttpStatus.BAD_REQUEST, "40023", "확정 대기 약속이 아닙니다"),
NOT_PENDING_APPOINTMENT_ERROR(HttpStatus.BAD_REQUEST, "40023", "확정 대기 약속이 아닙니다."),
NO_RESPONSE_BODY_ERROR(HttpStatus.BAD_REQUEST, "40024", "Response Body가 존재하지 않습니다."),

REDIRECT_URI_MISMATCH_ERROR(HttpStatus.BAD_REQUEST, "40025", "잘못된 Redirect Uri입니다."),

// S3 관련 오류
IMAGE_EXTENSION_ERROR(HttpStatus.BAD_REQUEST, "40051", "이미지 확장자는 jpg, png, webp만 가능합니다."),
Expand Down

0 comments on commit 700ccaf

Please sign in to comment.