Skip to content

Commit

Permalink
🐛 [STMT-146] 수정된 코드가 테스트 케이스를 통과하도록 버그 수정
Browse files Browse the repository at this point in the history
- !를 붙이지 않은 논리 오류와 test에서 바라는 결과와 다른 응답을 주어서 테스트가 통과가 되지 않았습니다.
- 추출한 content type이 non null일 경우, 시스템 내부에서 정해진 content type 목록에 포함되지 않는 확장자의 경우 Unsupported media type과 Bad Reqeust 둘 중에 어떤 상태코드를 보낼지 고민했는데, Validator인만큼 유효성을 판단한다고 생각하여 `BadRequest` 상태코드를 통일하여 응답하기로 결정하였습니다.
  • Loading branch information
05AM committed Mar 12, 2024
1 parent d28bbc7 commit 8385fd8
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ public enum ErrorCode {
*/
STUDY_NOT_FOUND(HttpStatus.NOT_FOUND, "존재하지 않는 스터디 입니다."),

/*
415 - UNSUPPORTED MEDIA TYPE
*/
UNSUPPORTED_FILE_CONTENT_TYPE(HttpStatus.UNSUPPORTED_MEDIA_TYPE, "지원되지 않는 파일 형식입니다."),

/*
500 - INTERNAL SERVER ERROR
*/
Expand Down
19 changes: 10 additions & 9 deletions src/main/java/com/stumeet/server/common/util/FileValidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@ public static boolean isImageFileValid(MultipartFile file) {
String contentType = file.getContentType();
String extension = FileUtil.extractExtension(fileName);

validateFileName(fileName);
validateImageContentType(contentType, extension);

return true;
return isFileNameValid(fileName) && isFileContentTypeValid(contentType, extension);
}

public static void validateImageFile(MultipartFile file) {
Expand All @@ -33,18 +30,22 @@ public static void validateImageFile(MultipartFile file) {
}

public static void validateFileName(String fileName) {
if (fileName == null || !fileName.contains(".")) {
if (!isFileNameValid(fileName)) {
throw new InvalidFileException(ErrorCode.INVALID_FILE_NAME_EXCEPTION);
}
}

public static void validateImageContentType(String contentType, String extension) {
if (contentType == null) {
if (!isFileContentTypeValid(contentType, extension)) {
throw new InvalidFileException(ErrorCode.INVALID_FILE_CONTENT_TYPE_EXCEPTION);
}
}

if (!ImageContentType.exists(contentType, extension)) {
throw new InvalidFileException(ErrorCode.UNSUPPORTED_FILE_CONTENT_TYPE);
}
private static boolean isFileNameValid(String fileName) {
return fileName != null && fileName.contains(".");
}

private static boolean isFileContentTypeValid(String contentType, String extension) {
return contentType != null && ImageContentType.exists(contentType, extension);
}
}

0 comments on commit 8385fd8

Please sign in to comment.