From e5d2564f1dfe72ad4e7c2fe9f520a5785925767e Mon Sep 17 00:00:00 2001 From: songhee1 Date: Sat, 20 Jan 2024 12:51:30 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Feat=20:=20Custom=20converter=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1(#110)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-Type: multipart/form-data를 지원하는 http 요청 처리를 위한 용도입니다 --- ...MultipartJackson2HttpMessageConverter.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/tavebalak/OTTify/common/component/MultipartJackson2HttpMessageConverter.java diff --git a/src/main/java/tavebalak/OTTify/common/component/MultipartJackson2HttpMessageConverter.java b/src/main/java/tavebalak/OTTify/common/component/MultipartJackson2HttpMessageConverter.java new file mode 100644 index 00000000..74e026de --- /dev/null +++ b/src/main/java/tavebalak/OTTify/common/component/MultipartJackson2HttpMessageConverter.java @@ -0,0 +1,33 @@ +package tavebalak.OTTify.common.component; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.lang.reflect.Type; +import org.springframework.http.MediaType; +import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter; +import org.springframework.stereotype.Component; + +@Component +public class MultipartJackson2HttpMessageConverter extends AbstractJackson2HttpMessageConverter { + + /** + * "Content-Type: multipart/form-data" 헤더를 지원하는 HTTP 요청 변환기 + */ + public MultipartJackson2HttpMessageConverter(ObjectMapper objectMapper) { + super(objectMapper, MediaType.APPLICATION_OCTET_STREAM); + } + + @Override + public boolean canWrite(Class clazz, MediaType mediaType) { + return false; + } + + @Override + public boolean canWrite(Type type, Class clazz, MediaType mediaType) { + return false; + } + + @Override + protected boolean canWrite(MediaType mediaType) { + return false; + } +} \ No newline at end of file From 507900ebe2de9221e015e342e530e71dea08c9ec Mon Sep 17 00:00:00 2001 From: songhee1 Date: Sat, 20 Jan 2024 12:54:27 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Feat=20:=20ModelAttribute=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=EB=90=98=EB=8D=98=20dto=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0(#110)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommunitySubjectImageCreateDTO.java | 32 ------------------- .../request/CommunitySubjectImageEditDTO.java | 30 ----------------- 2 files changed, 62 deletions(-) delete mode 100644 src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageCreateDTO.java delete mode 100644 src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageEditDTO.java diff --git a/src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageCreateDTO.java b/src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageCreateDTO.java deleted file mode 100644 index 9be8dbaf..00000000 --- a/src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageCreateDTO.java +++ /dev/null @@ -1,32 +0,0 @@ -package tavebalak.OTTify.community.dto.request; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Getter; -import org.springframework.web.multipart.MultipartFile; - - -@Getter -@AllArgsConstructor -@ApiModel(value = "CommunitySubjectImageCreateDTO(토론주제 생성 정보)", description = "토론주제 id, 토론제목, 토론내용, 이미지 파일 내용을 가진 Domain Class") -public class CommunitySubjectImageCreateDTO { - - @NotNull - @ApiModelProperty(value = "프로그램 id", required = true) - private Long programId; - - @NotBlank(message = "토론 주제 제목이 비워져 있어서는 안됩니다.") - @ApiModelProperty(value = "토론 제목", required = true) - private String subjectName; - - @NotBlank(message = "토론 내용이 비워져 있어서는 안됩니다.") - @ApiModelProperty(value = "토론 내용", required = true) - private String content; - - @ApiModelProperty(value = "이미지") - private MultipartFile image; - -} diff --git a/src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageEditDTO.java b/src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageEditDTO.java deleted file mode 100644 index 5578d5be..00000000 --- a/src/main/java/tavebalak/OTTify/community/dto/request/CommunitySubjectImageEditDTO.java +++ /dev/null @@ -1,30 +0,0 @@ -package tavebalak.OTTify.community.dto.request; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Getter; -import org.springframework.web.multipart.MultipartFile; - -@Getter -@AllArgsConstructor -@ApiModel(value = "CommunitySubjectImageEditDTO(토론주제 수정 정보)", description = "토론주제 id, 토론제목, 토론내용, 이미지 파일 내용을 가진 Domain Class") -public class CommunitySubjectImageEditDTO { - - @NotNull - @ApiModelProperty(value = "토론 주제 id", required = true) - private Long subjectId; - - @NotBlank(message = "토론 주제 제목이 비워져 있어서는 안됩니다.") - @ApiModelProperty(value = "토론 주제", required = true) - private String subjectName; - - @NotBlank(message = "토론 내용이 비워져 있어서는 안됩니다.") - @ApiModelProperty(value = "토론 내용", required = true) - private String content; - - @ApiModelProperty(value = "이미지") - private MultipartFile image; -}