수진개발서

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);

 

profile

수진개발서

@sujin_park0607

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!