diff --git a/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java b/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java index c28d992..df9997f 100644 --- a/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java +++ b/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java @@ -54,4 +54,12 @@ public CustomResponse createUserMealPlan( return CustomResponse.onSuccess(GeneralSuccessCode.OK); } + + @GetMapping("/user") + @Operation(summary = "유저의 MealPlanId 존재 여부 확인 API") + public CustomResponse getUserMealPlansId() { + + User user = userService.getAuthenticatedUserInfo(); + return CustomResponse.onSuccess(GeneralSuccessCode.OK, mealPlanQueryService.getMealPlans(user)); + } } diff --git a/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java b/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java index 627866b..09b4425 100644 --- a/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java +++ b/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java @@ -18,7 +18,7 @@ public class MealPlanResponseDTO { public static class MealPlanGetResponseDTO { private Long userId; - private Long planMealId; + private Long mealPlanId; private LocalDate startDate; private LocalDate endDate; private List dailyMeals; @@ -26,7 +26,7 @@ public static class MealPlanGetResponseDTO { public static MealPlanGetResponseDTO from(Long userId, MealPlan mealPlan) { return MealPlanGetResponseDTO.builder() .userId(userId) - .planMealId(mealPlan.getId()) + .mealPlanId(mealPlan.getId()) .startDate(mealPlan.getStartDate()) .endDate(mealPlan.getEndDate()) .dailyMeals(mealPlan.getDailyMeals().stream() diff --git a/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java b/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java index ca7fe19..6b79dc8 100644 --- a/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java +++ b/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java @@ -9,9 +9,12 @@ @RequiredArgsConstructor public enum MealPlanErrorCode implements BaseErrorCode { - MEAL_PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "MEAL_PLAN_NOT_FOUND", "해당 Id의 일주일 식단이 없습니다.") + MEAL_PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "MEAL_PLAN_NOT_FOUND", "해당 Id의 일주일 식단이 없습니다."), + USER_MEAL_PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "USER_MEAL_PLAN_NOT_FOUND", "유저의 mealPlan(식단)이 존재 하지 않습니다.") ; + + private final HttpStatus status; private final String code; private final String message; diff --git a/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java b/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java index 0f91be0..a97edea 100644 --- a/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java +++ b/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java @@ -4,11 +4,10 @@ import org.springframework.stereotype.Repository; import umc7th.bulk.mealPlan.entity.MealPlan; +import java.util.List; + @Repository public interface MealPlanRepository extends JpaRepository { + List findByUserId(Long userId); -// @Query("SELECT mp FROM MealPlan mp WHERE mp.user.id = :userId ORDER BY mp.createdAt DESC") - MealPlan findByUserId(Long userId); - -// List findByIdWithDailyMeals(Long mealPlanId); } diff --git a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java index dd573a6..e95e49e 100644 --- a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java +++ b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java @@ -1,9 +1,14 @@ package umc7th.bulk.mealPlan.service.query; import umc7th.bulk.mealPlan.entity.MealPlan; +import umc7th.bulk.user.domain.User; + +import java.util.List; public interface MealPlanQueryService { // MealPlan getMealPlan(Long userId, Long mealPlanId, int pageSize); MealPlan getMealPlan(Long userId, Long mealPlanId); + + List getMealPlans(User user); } diff --git a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java index 1e5c90f..9d3067f 100644 --- a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java +++ b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java @@ -14,6 +14,8 @@ import umc7th.bulk.user.exception.UserException; import umc7th.bulk.user.repository.UserRepository; +import java.util.List; + @Service @RequiredArgsConstructor @Transactional @@ -32,4 +34,18 @@ public MealPlan getMealPlan(Long userId, Long mealPlanId) { } return mealPlan; } + + @Override + public List getMealPlans(User user) { + + List userMealPlans = mealPlanRepository.findByUserId(user.getId()); + if (userMealPlans.isEmpty()) { + throw new MealPlanException(MealPlanErrorCode.USER_MEAL_PLAN_NOT_FOUND); + } + + return userMealPlans.stream() + .map(mealPlan -> mealPlan.getId()) + .toList(); + + } }