Conversation
Fluteen
left a comment
There was a problem hiding this comment.
고생하셨습니다👍👍!! 괜찮은 것 같은데 다른 의견이 생각나서 아래 코멘트 남깁니다!
지금 service 로직에서는 일단 슬롯을 다 true로 두고 applyReservationToSlots에서 최종 비교해서 false로 바꾸고 그 친구들만 list에 포함시키는거로 이해했습니다.
혹시 통일성을 위해 service 로직에 불가능한 시간 테이블을 구하는 로직으로 짜면 어떨까요?? 최종적으로 반환하는건 불가능한 시간 슬롯 리스트니까..ㅎ
| Optional<DailySchedule> optionalDailySchedule = dailyScheduleRepository.findByDate(date); | ||
|
|
||
| // 일간 스케줄이 있을 경우 계산, 없을 경우 주간 스케줄로 계산 | ||
| if(optionalDailySchedule.isPresent()){ | ||
| DailySchedule dailySchedule = optionalDailySchedule.get(); | ||
| boolean[] slots = generateDailySlots(dailySchedule.getStartTime(), dailySchedule.getEndTime()); | ||
| applyReservationsToSlots(slots,reservations); | ||
| return DailyAvailableResponse.of(date, dailySchedule.isActive(), slots); | ||
| } else { | ||
| WeeklySchedule weeklySchedule = weeklyScheduleRepository.findByDayOfWeek(date.getDayOfWeek()) | ||
| .orElseThrow(() -> new ReservationException(WEEKLY_SCHEDULE_NOT_FOUND)); | ||
| boolean[] slots = generateDailySlots(weeklySchedule.getStartTime(), weeklySchedule.getEndTime()); | ||
| applyReservationsToSlots(slots,reservations); | ||
| return DailyAvailableResponse.of(date, weeklySchedule.isActive(), slots); | ||
| } |
There was a problem hiding this comment.
요 로직 map().orElse() 로 더 간결하게 작성 가능할 거 같아용
a.findByDate()
.map(data -> DailyAvailableResponse.of())
.orElse(DailyAvailableResponse.of());There was a problem hiding this comment.
generateDailySlots() 메서드에서 DailySchedule 과 reservation 을 인자로 받고, 내부에서 일간 스케줄 기반 슬롯 설정, 기존 예약 기반 슬롯 설정 로직을 나눠 작성하면 더 좋을 것 같아용
There was a problem hiding this comment.
그리고 궁금한 점이 하나 있는데, 관리자 화면에서 slot 과 관련된 화면이 있나요?? 일별로 예약 가능 시간의 시작 시간, 종료시간을 보는 API 만 있었던 거 같은데, 그 API 에서도 슬롯으로 응답하나요?
There was a problem hiding this comment.
아 관리자 api로도 연결되어있는걸 생각을 못했네요...아마 관리자는 원래 응답하던대로 응답해야할 것 같습니다. 프론트와 얘기해보고 작업하겠습니다!
작업했습니다! |
작업 내용
특이 사항 (리뷰 시 참고할 내용)
관련 이슈
close #153