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 935d491..d799abd 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 @@ -34,6 +34,20 @@ public CommonResponse saveUserRoute( return CommonResponse.onSuccess(response); } + @Operation( + summary = "유저 루트 상태 변경", + description = "사용자가 선택한 루트의 상태 변경", + security = @SecurityRequirement(name = "bearerAuth") + ) + @PutMapping("/{savedRouteId}/{status}") + public CommonResponse updateUserRouteStatus( + @Parameter(hidden = true) @CurrentUser User user, + @PathVariable Long savedRouteId, + @PathVariable UserRouteStatus status) { + userRouteService.updateUserRouteStatus(user, savedRouteId, status); + return CommonResponse.onSuccess(null); + } + @Operation( summary = "유저 루트 목록 조회", description = "사용자가 저장한 루트 목록 조회", @@ -73,4 +87,4 @@ public CommonResponse deleteUserRoute( userRouteService.deleteUserRoute(user, savedRouteId); return CommonResponse.onSuccess(null); } -} \ No newline at end of file +} diff --git a/src/main/java/com/mey/backend/domain/user_route/entity/UserRoute.java b/src/main/java/com/mey/backend/domain/user_route/entity/UserRoute.java index b601960..7a36288 100644 --- a/src/main/java/com/mey/backend/domain/user_route/entity/UserRoute.java +++ b/src/main/java/com/mey/backend/domain/user_route/entity/UserRoute.java @@ -12,11 +12,13 @@ import java.time.LocalDateTime; import java.util.Date; + import lombok.Setter; @Entity @Table(name = "user_routes") @Getter +@Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor(access = AccessLevel.PRIVATE) @Builder 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 dad8de0..561cdc8 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 @@ -13,11 +13,13 @@ import com.mey.backend.global.exception.RouteException; import com.mey.backend.global.exception.UserRouteException; import com.mey.backend.global.payload.status.ErrorStatus; + import java.sql.Date; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.List; + import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -91,6 +93,18 @@ public void updateUserRoute(User user, Long savedRouteId, UserRouteUpdateRequest userRouteRepository.save(userRoute); } + @Transactional + public void updateUserRouteStatus(User user, Long savedRouteId, UserRouteStatus status) { + UserRoute userRoute = userRouteRepository.findByUserRouteIdAndUser(savedRouteId, user) + .orElseThrow(() -> new UserRouteException(ErrorStatus.USER_ROUTE_NOT_FOUND)); + + if (status == null || status == UserRouteStatus.ALL) { + throw new UserRouteException(ErrorStatus.BAD_REQUEST); + } + + userRoute.setUserRouteStatus(status); + } + @Transactional public void deleteUserRoute(User user, Long savedRouteId) { UserRoute userRoute = userRouteRepository.findByUserRouteIdAndUser(savedRouteId, user)