diff --git a/src/main/java/com/idol/domains/wish/controller/WishQueryController.java b/src/main/java/com/idol/domains/wish/controller/WishQueryController.java new file mode 100644 index 0000000..cdb3dca --- /dev/null +++ b/src/main/java/com/idol/domains/wish/controller/WishQueryController.java @@ -0,0 +1,34 @@ +package com.idol.domains.wish.controller; + +import com.idol.domains.auth.util.annotation.MemberId; +import com.idol.domains.wish.dto.request.WishLikeRequestDto; +import com.idol.domains.wish.usecase.GetWishListByMemberIdUsecase; +import com.idol.domains.wish.usecase.WishUnlikeUsecase; +import com.idol.domains.wish.usecase.WishlikeUsecase; +import com.idol.global.common.response.ApiResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name = "찜 Query API", description = "찜 조회 API") +@RequiredArgsConstructor +@RestController +@RequestMapping("/api") +public class WishQueryController { + + private final GetWishListByMemberIdUsecase getWishListByMemberIdUsecase; + + @Operation(summary = "찜 목록 조회", description = "회원의 찜한 게시물 ID 목록을 조회합니다.") + @GetMapping("/wishlist") + public ApiResponse> getWishList( + @MemberId Long memberId + ) { + List articleIds = getWishListByMemberIdUsecase.findArticleIdsByMemberId(memberId); + return ApiResponse.ok(200, articleIds, "찜 목록 조회 성공"); + } +} diff --git a/src/main/java/com/idol/domains/wish/service/GetWishListByMemberIdService.java b/src/main/java/com/idol/domains/wish/service/GetWishListByMemberIdService.java new file mode 100644 index 0000000..a0b8b26 --- /dev/null +++ b/src/main/java/com/idol/domains/wish/service/GetWishListByMemberIdService.java @@ -0,0 +1,22 @@ +package com.idol.domains.wish.service; + +import com.idol.domains.wish.repository.WishRepository; +import com.idol.domains.wish.usecase.GetWishListByMemberIdUsecase; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@RequiredArgsConstructor +@Service +@Transactional(readOnly = true) +public class GetWishListByMemberIdService implements GetWishListByMemberIdUsecase { + + private final WishRepository wishRepository; + + @Override + public List findArticleIdsByMemberId(Long memberId) { + return wishRepository.findArticleIdsByMemberId(memberId); + } +} diff --git a/src/main/java/com/idol/domains/wish/usecase/GetWishListByMemberIdUsecase.java b/src/main/java/com/idol/domains/wish/usecase/GetWishListByMemberIdUsecase.java new file mode 100644 index 0000000..0f83ae8 --- /dev/null +++ b/src/main/java/com/idol/domains/wish/usecase/GetWishListByMemberIdUsecase.java @@ -0,0 +1,7 @@ +package com.idol.domains.wish.usecase; + +import java.util.List; + +public interface GetWishListByMemberIdUsecase { + List findArticleIdsByMemberId(Long memberId); +}