- 23.12.07) TIL2023년 12월 07일 20시 51분 40초에 업로드 된 글입니다.작성자: oneseel
게시글 좋아요 기능 좋아요 취소기능을 구현했다. (댓글도 만들었지만, 게시글 좋아요 기능과 변수만 다르고 거의 같다)
// 게시글 좋아요 하기 @PostMapping public ResponseEntity<?> likePost(@PathVariable Long postId, @AuthenticationPrincipal UserDetailsImpl userDetails) { User loginUser = userDetails.getUser(); likePostService.likePost(loginUser, postId); return ResponseEntity.status(HttpStatus.CREATED).body("요청 성공"); }
// 게시글 좋아요 하기 @Transactional public LikePost likePost(User loginUser, Long postId) { Post post = postRepository.findById(postId).orElseThrow(PostNotFoundException::new); if (likePostRepository.findByUserAndPost(loginUser, post).isPresent()) { throw new DuplicatedLikeException(); } LikePost likePost = LikePost.fromUserAndPost(loginUser, post); return likePostRepository.save(likePost); }
// 게시글 좋아요 취소하기 @DeleteMapping public ResponseEntity<?> unLikePost(@PathVariable Long postId, @AuthenticationPrincipal UserDetailsImpl userDetails) { User loginUser = userDetails.getUser(); likePostService.unLikePost(loginUser, postId); return ResponseEntity.ok().body("요청 성공"); }
// 게시글 좋아요 취소하기 @Transactional public void unLikePost(User loginUser, Long postId) { Post post = postRepository.findById(postId).orElseThrow(PostNotFoundException::new); LikePost likePost = likePostRepository.findByUserAndPost(loginUser, post) .orElseThrow(NotFoundLikeException::new); likePostRepository.deleteById(likePost.getId()); }
'TIL' 카테고리의 다른 글
23.12.12) TIL (0) 2023.12.12 23.12.08) TIL (0) 2023.12.08 23.12.06) TIL (0) 2023.12.06 23.12.05) TIL (0) 2023.12.05 23.12.04) TIL (0) 2023.12.04 댓글