Skip to content

Commit

Permalink
feat: 파일 없이 게시글 업로드 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
kyeong-hyeok committed Oct 7, 2023
1 parent f25eed1 commit 1f1f0c7
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -35,10 +26,10 @@ public ResponseEntity<SliceResponseDto> getArticlesByCategory(@RequestParam("sea
return SliceResponseDto.ok(response);
}

@PostMapping(value = "", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE})
public ResponseEntity<Void> 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<Void> saveArticleAndFile(@RequestPart ArticleSaveRequestDto requestDto,
@RequestPart(name = "file", required = false) MultipartFile file) {
articleService.saveArticleAndFile(requestDto, file);
return ResponseEntity.noContent().build();
}

Expand All @@ -48,5 +39,11 @@ public ResponseEntity<ArticleGetResponseDto> getOneArticle(@PathVariable Long ar
return ResponseEntity.ok(responseDto);
}

@PostMapping
public ResponseEntity<Void> saveArticle(@RequestBody ArticleSaveRequestDto requestDto) {
articleService.saveArticle(requestDto);
return ResponseEntity.noContent().build();
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -38,7 +37,7 @@ public Slice<ArticleResponseDto> 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());
Expand All @@ -57,4 +56,10 @@ public Slice<ArticleResponseDto> getSos(Long storeId, Pageable pageable) {
Slice<ArticleResponseDto> 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));
}
}

0 comments on commit 1f1f0c7

Please sign in to comment.