sns만들기 프로젝트 2일차 좋아요 조회를 구현하였다.
요구사항은 다음과 같다.
요구사항
- 좋아요 조회
좋아요 개수 GET /posts/{postsId}/likes
- Json방식으로 리턴
- response 형태: { "resultCode":"SUCCESS", "result": 0 }
코드
LikeController
좋아요 조회를 구현했다. 생각해야할것 중 하나는 좋아요의 개수는 로그인 필요 없이 볼 수 있다는것! 그점을 간과하고 로그인한 유저만 조회를 할 수 있도록 구현했다가 수정했다.
바로 service에서 좋아요 개수를 받아 Response에 감싸서 보내주었다.
/**
* 좋아요 개수 조회
*/
@GetMapping
public Response<Integer> getLike(@PathVariable Long postId){
Integer count = likeService.countLike(postId);
return Response.success(count);
}
LikeService
해당 post가 존재하는지 확인 후 repository에서 가져온 좋아요 개수의 결과를 바로 넘겨주었다.
public Integer countLike(Long postId) {
//유저와 게시물의 존재 유무 확인
Post post = validateService.validatePost(postId);
//해당 포스트의 like 개수 확인
Integer likeCnt = likeRepository.countByPost(post);
return likeCnt;
}
LikeRepository
이번에도 JPA 메서드쿼를 사용해서 좋아요의 개수를 가져왔다.
CountBy~라는 메서드를 사용하게되면 해당 쿼리의 개수를 가져오게된다. DB에서 Count함수 역할을 한다.
CountByPost 메서드를 사용하여 해당 post의 좋아요 개수를 가져왔다.
Integer countByPost(Post post);
'프로젝트 > SNS만들기' 카테고리의 다른 글
[SNS Project] 마이피드 기능 구현 (0) | 2023.01.06 |
---|---|
[SNS Project] 좋아요 기능 - Soft Delete 리펙토링(@Modifying) (2) | 2023.01.06 |
[SNS Project] Post, User 예외처리 분리하기 (0) | 2023.01.04 |
[SNS Project] 좋아요 테스트 (0) | 2023.01.04 |
[SNS Project] 좋아요 기능 (0) | 2023.01.04 |