MainController.java
@GetMapping("read/review/{id}")
public List<ReviewResponseDTO> FindReview(@PathVariable Long id){
return reviewService.findReview(id);
}
ReviewServiceImpl.java
@Override
public List<ReviewResponseDTO> findReview(Long id) {
HealthInfo healthInfo = healthRepository.findById(id).orElseThrow(()->
new IllegalArgumentException("해당 게시글이 존재하지 않습니다."));
List<Review> reviews = healthInfo.getReviews();
return reviews.stream().map(ReviewResponseDTO::new).collect(Collectors.toList());
}
id가 있으면 찾아서 healthinfo객체에 넣고 만약에 없다면 콘솔에 해당 게시글이 존재하지 않습니다라는 문구를 출력한다. return reviews.stream().map(ReviewResponseDTO::new).collect(Collectors.toList());
MainController.java
@PostMapping("/save/review/{id}")
public ResponseEntity SaveReview(@PathVariable Long id, @RequestBody ReviewRequestDTO dto){
return ResponseEntity.ok(reviewService.saveReview(id,dto));
}
ReviewServiceImpl.java
@Override
public Long saveReview(Long id, ReviewRequestDTO reviewRequestDTO) {
HealthInfo healthInfo = healthRepository.findById(id).
orElseThrow(()->new IllegalArgumentException
("댓글 쓰기 실패: 해당 게시글이 존재하지 않습니다." + id));
reviewRequestDTO.setHealthInfo(healthInfo);
Review review = reviewRequestDTO.toEntity(reviewRequestDTO);
reviewRepository.save(review);
return reviewRequestDTO.getId();
}
조회랑 비슷하게 해당 게시글이 존재하지 않으면 리뷰를 쓸 수 없게한다.
healthInfo에 매개변수로 들어온 id가 있으면 찾아서 healthinfo객체에 넣고 만약에 없다면(=게시글이 존재하지 않는다면) 콘솔에 해당 게시글이 존재하지 않습니다라는 문구를 출력한다.
review객체를 하나 만들고, 전달받은 데이터를 toEntity로 Entity로 변환한다.
변환된 review객체를 Repository의 save메서드로 저장한다.
리턴값으로는 리뷰의 아이디를 반환한다.