|
8 | 8 | import java.util.ArrayList; |
9 | 9 | import java.util.HashMap; |
10 | 10 | import java.util.Map; |
| 11 | +import java.util.stream.Collectors; |
11 | 12 |
|
12 | 13 | import bitnagil.bitnagil_backend.changedRoutine.domain.ChangedRoutine; |
13 | 14 | import bitnagil.bitnagil_backend.changedRoutine.domain.ChangedSubRoutine; |
|
16 | 17 | import bitnagil.bitnagil_backend.changedRoutine.repository.ChangedSubRoutineRepository; |
17 | 18 | import bitnagil.bitnagil_backend.emotionMarble.domain.EmotionMarble; |
18 | 19 | import bitnagil.bitnagil_backend.emotionMarble.repository.EmotionMarbleRepository; |
| 20 | +import bitnagil.bitnagil_backend.global.entity.HistoryPk; |
19 | 21 | import bitnagil.bitnagil_backend.routine.domain.RoutineCompletion; |
20 | 22 | import bitnagil.bitnagil_backend.routine.domain.enums.RoutineType; |
21 | 23 | import bitnagil.bitnagil_backend.routine.repository.RoutineCompletionRepository; |
@@ -190,6 +192,25 @@ public RoutineSearchResponse getRoutines(User user, LocalDate startDate, LocalDa |
190 | 192 | return queryRoutines(user, startDate, endDate); |
191 | 193 | } |
192 | 194 |
|
| 195 | + // routineId에 대한 단일 루틴 조회하는 메서드입니다. |
| 196 | + @Transactional(readOnly = true) |
| 197 | + public RoutineSearchResultDto getRoutine(User user, UUID routineId) { |
| 198 | + LocalDateTime now = LocalDateTime.now(); |
| 199 | + |
| 200 | + Routine routine = routineValidator.validateRoutineOwnership(routineId, user, now); |
| 201 | + |
| 202 | + List<SubRoutine> subRoutines = subRoutineRepository.findByRoutineId(routine.getRoutinePk().getId()); |
| 203 | + |
| 204 | + // 서브 루틴 목록 Dto로 변환 |
| 205 | + List<SubRoutineSearchResultDto> subRoutineSearchResultDtos = |
| 206 | + subRoutines.stream() |
| 207 | + .map(subRoutine -> routineMapper.toSubRoutineSearchResultDto(subRoutine, null)) |
| 208 | + .toList(); |
| 209 | + |
| 210 | + // 루틴 관련 정보 Dto로 변환 |
| 211 | + return routineMapper.toRoutineSearchResultDto(routine, subRoutineSearchResultDtos, null); |
| 212 | + } |
| 213 | + |
193 | 214 | // 루틴의 완료 여부를 갱신하는 메서드입니다. |
194 | 215 | @Transactional |
195 | 216 | public void updateRoutineCompletionStatus(User user, UpdateRoutineCompletionRequest request) { |
|
0 commit comments