id로 댓글 삭제하기

jb kim·2022년 3월 4일
0

REST API 블로그 앱

목록 보기
32/65

1. 서비스

	// id 로 댓글 삭제
	void deleteCommentById(Long postId, Long commentId);

2. 서비스 구현

	@Override
	public void deleteCommentById(Long postId, Long commentId) {
		//ID 로 포스트 찾기 못찾을 경우 예외처리
		Post post = postRepository.findById(postId).orElseThrow(() -> new ResourceNotFoundException("Post", "id", postId));	
		//ID 로 댓글 찾기 못찾을 경우 예외
		Comment comment = commentRepository.findById(commentId).orElseThrow(() -> new ResourceNotFoundException("Comment", "id", commentId));
		
		if(!comment.getPost().getId().equals(post.getId())) {
			throw new BlogAPIException(HttpStatus.BAD_REQUEST, "해당 포스트의 댓글이 아닙니다.");
		}
		
		commentRepository.delete(comment);
	}

컨트롤러

	@DeleteMapping("/posts/{postId}/comments/{commentId}")
	public ResponseEntity<String> deleteCommentById(@PathVariable long postId, @PathVariable long commentId){	
		commentService.deleteCommentById(postId, commentId);
		return new ResponseEntity<>("성공적으로 삭제 완료.", HttpStatus.OK) ;
	}

테스트

profile
픽서

0개의 댓글