diff --git a/src/main/java/com/mey/backend/domain/user_route/controller/UserRouteController.java b/src/main/java/com/mey/backend/domain/user_route/controller/UserRouteController.java index d799abd..c925833 100644 --- a/src/main/java/com/mey/backend/domain/user_route/controller/UserRouteController.java +++ b/src/main/java/com/mey/backend/domain/user_route/controller/UserRouteController.java @@ -48,6 +48,20 @@ public CommonResponse updateUserRouteStatus( return CommonResponse.onSuccess(null); } + @Operation( + summary = "루트 ID로 유저 루트 ID 및 상태 조회", + description = "루트 ID로 사용자가 저장한 루트 ID 및 상태 조회", + security = @SecurityRequirement(name = "bearerAuth") + ) + @GetMapping("/{routeId}") + public CommonResponse getUserRoutesByRouteId( + @Parameter(hidden = true) @CurrentUser User user, + @PathVariable Long routeId + ) { + UserRouteStatusResponseDto response = userRouteService.getUserRoutesByRouteId(user, routeId); + return CommonResponse.onSuccess(response); + } + @Operation( summary = "유저 루트 목록 조회", description = "사용자가 저장한 루트 목록 조회", diff --git a/src/main/java/com/mey/backend/domain/user_route/dto/UserRouteStatusResponseDto.java b/src/main/java/com/mey/backend/domain/user_route/dto/UserRouteStatusResponseDto.java new file mode 100644 index 0000000..c183eba --- /dev/null +++ b/src/main/java/com/mey/backend/domain/user_route/dto/UserRouteStatusResponseDto.java @@ -0,0 +1,25 @@ +package com.mey.backend.domain.user_route.dto; + +import com.mey.backend.domain.user_route.entity.UserRoute; +import com.mey.backend.domain.user_route.entity.UserRouteStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class UserRouteStatusResponseDto { + + private Long userRouteId; + private UserRouteStatus status; + + public static UserRouteStatusResponseDto from(UserRoute userRoute) { + return UserRouteStatusResponseDto.builder() + .userRouteId(userRoute.getUserRouteId()) + .status(userRoute.getUserRouteStatus()) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/mey/backend/domain/user_route/repository/UserRouteRepository.java b/src/main/java/com/mey/backend/domain/user_route/repository/UserRouteRepository.java index c0175c0..7b364ae 100644 --- a/src/main/java/com/mey/backend/domain/user_route/repository/UserRouteRepository.java +++ b/src/main/java/com/mey/backend/domain/user_route/repository/UserRouteRepository.java @@ -24,4 +24,7 @@ public interface UserRouteRepository extends JpaRepository { Optional findByUserRouteIdAndUser(Long userRouteId, User user); boolean existsByUserAndRoute(User user, Route route); + + Optional findByUserAndRoute_Id(User user, Long routeId); + } diff --git a/src/main/java/com/mey/backend/domain/user_route/service/UserRouteService.java b/src/main/java/com/mey/backend/domain/user_route/service/UserRouteService.java index 1a509fb..d4850eb 100644 --- a/src/main/java/com/mey/backend/domain/user_route/service/UserRouteService.java +++ b/src/main/java/com/mey/backend/domain/user_route/service/UserRouteService.java @@ -3,10 +3,7 @@ import com.mey.backend.domain.route.entity.Route; import com.mey.backend.domain.route.repository.RouteRepository; import com.mey.backend.domain.user.entity.User; -import com.mey.backend.domain.user_route.dto.UserRouteListResponseDto; -import com.mey.backend.domain.user_route.dto.UserRouteSaveRequestDto; -import com.mey.backend.domain.user_route.dto.UserRouteSaveResponseDto; -import com.mey.backend.domain.user_route.dto.UserRouteUpdateRequestDto; +import com.mey.backend.domain.user_route.dto.*; import com.mey.backend.domain.user_route.entity.UserRoute; import com.mey.backend.domain.user_route.entity.UserRouteStatus; import com.mey.backend.domain.user_route.repository.UserRouteRepository; @@ -59,6 +56,14 @@ public UserRouteSaveResponseDto saveUserRoute(User user, UserRouteSaveRequestDto .build(); } + public UserRouteStatusResponseDto getUserRoutesByRouteId(User user, Long routeId) { + + UserRoute userRoute = userRouteRepository.findByUserAndRoute_Id(user, routeId) + .orElseThrow(() -> new UserRouteException(ErrorStatus.USER_ROUTE_NOT_FOUND)); + + return UserRouteStatusResponseDto.from(userRoute); + } + public UserRouteListResponseDto getUserRoutes(User user, UserRouteStatus status) { List userRoutes;