From 53904468e21e2d2982ed152084abc45c82ac97ea Mon Sep 17 00:00:00 2001 From: sumi Date: Sat, 13 Sep 2025 23:50:54 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A3=A8=ED=8A=B8=20ID=EB=A1=9C=20?= =?UTF-8?q?=EC=9C=A0=EC=A0=80=20=EB=A3=A8=ED=8A=B8=20ID=20=EB=B0=8F=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=20=EC=A1=B0=ED=9A=8C=C2=B7=EB=B0=98=ED=99=98?= =?UTF-8?q?=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserRouteController.java | 14 +++++++++++ .../dto/UserRouteStatusResponseDto.java | 25 +++++++++++++++++++ .../repository/UserRouteRepository.java | 3 +++ .../user_route/service/UserRouteService.java | 13 +++++++--- 4 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/mey/backend/domain/user_route/dto/UserRouteStatusResponseDto.java 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;