diff --git a/src/main/java/com/kusitms/teamc/domain/article/controller/ArticleController.java b/src/main/java/com/kusitms/teamc/domain/article/controller/ArticleController.java index c69f487..a5c94be 100644 --- a/src/main/java/com/kusitms/teamc/domain/article/controller/ArticleController.java +++ b/src/main/java/com/kusitms/teamc/domain/article/controller/ArticleController.java @@ -4,24 +4,15 @@ import com.kusitms.teamc.domain.article.dto.request.ArticleSaveRequestDto; import com.kusitms.teamc.domain.article.dto.response.ArticleGetResponseDto; import com.kusitms.teamc.domain.article.dto.response.ArticleResponseDto; -import com.kusitms.teamc.domain.article.entity.Article; -import com.kusitms.teamc.domain.article.repository.ArticleRepository; import com.kusitms.teamc.domain.article.service.ArticleService; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; -import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.IOException; -import java.util.List; - @RestController @RequiredArgsConstructor @RequestMapping("/api/articles") @@ -35,10 +26,10 @@ public ResponseEntity getArticlesByCategory(@RequestParam("sea return SliceResponseDto.ok(response); } - @PostMapping(value = "", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) - public ResponseEntity saveArticle(@RequestPart ArticleSaveRequestDto requestDto, - @RequestPart(name = "file", required = false) MultipartFile file) { - articleService.saveArticle(requestDto, file); + @PostMapping(value = "/file", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) + public ResponseEntity saveArticleAndFile(@RequestPart ArticleSaveRequestDto requestDto, + @RequestPart(name = "file", required = false) MultipartFile file) { + articleService.saveArticleAndFile(requestDto, file); return ResponseEntity.noContent().build(); } @@ -48,5 +39,11 @@ public ResponseEntity getOneArticle(@PathVariable Long ar return ResponseEntity.ok(responseDto); } + @PostMapping + public ResponseEntity saveArticle(@RequestBody ArticleSaveRequestDto requestDto) { + articleService.saveArticle(requestDto); + return ResponseEntity.noContent().build(); + } + } diff --git a/src/main/java/com/kusitms/teamc/domain/article/service/ArticleService.java b/src/main/java/com/kusitms/teamc/domain/article/service/ArticleService.java index 3e36b16..fbf00d9 100644 --- a/src/main/java/com/kusitms/teamc/domain/article/service/ArticleService.java +++ b/src/main/java/com/kusitms/teamc/domain/article/service/ArticleService.java @@ -11,7 +11,6 @@ import com.kusitms.teamc.domain.member.repository.MemberRepository; import com.kusitms.teamc.error.ErrorCode; import com.kusitms.teamc.error.exception.custom.BusinessException; -import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Pageable; @@ -38,7 +37,7 @@ public Slice getArticlesByCategory(String search, Pageable p return response; } - public void saveArticle(ArticleSaveRequestDto requestDto, MultipartFile file) { + public void saveArticleAndFile(ArticleSaveRequestDto requestDto, MultipartFile file) { Category category = Category.create(requestDto.category()); Member member = memberRepository.findByAccessToken(requestDto.accessToken()).orElseThrow(() -> new BusinessException(ErrorCode.MEMBER_NOT_FOUND)); String profileImageUrl = fileService.uploadFile(file, member.getName()); @@ -57,4 +56,10 @@ public Slice getSos(Long storeId, Pageable pageable) { Slice response = articles.map(a -> ArticleResponseDto.from(a)); return response; } + + public void saveArticle(ArticleSaveRequestDto requestDto) { + Category category = Category.create(requestDto.category()); + Member member = memberRepository.findByAccessToken(requestDto.accessToken()).orElseThrow(() -> new BusinessException(ErrorCode.MEMBER_NOT_FOUND)); + articleRepository.save(new Article(category, requestDto.title(), requestDto.content(), null, member)); + } }