Skip to content

Commit

Permalink
fix: 응답 필드 누락 (#70)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ho-Tea authored Jan 23, 2025
1 parent eecdf5c commit db16949
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import be.dash.dashserver.api.core.member.dto.MemberResponse;
import be.dash.dashserver.api.core.member.dto.MyLessonDetailedResponse;
import be.dash.dashserver.api.core.member.dto.MyLessonsResponse;
import be.dash.dashserver.api.core.member.dto.OnBoardRequest;
import be.dash.dashserver.api.core.member.dto.ReservationDetailedResponse;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package be.dash.dashserver.api.core.member;

import java.time.LocalDateTime;
import java.util.List;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import be.dash.dashserver.api.core.member.dto.MyLessonDetailedResponse;

import be.dash.dashserver.api.core.member.dto.MyLessonResponse;
import be.dash.dashserver.api.core.member.dto.MyLessonsResponse;
import be.dash.dashserver.api.core.member.dto.ReservationDetailedResponse;
Expand All @@ -16,8 +17,8 @@
import be.dash.dashserver.core.domain.reservation.Reservation;
import be.dash.dashserver.core.domain.reservation.Reservations;
import be.dash.dashserver.core.domain.reservation.service.ReservationService;
import be.dash.dashserver.core.log.annotation.Trace;
import be.dash.dashserver.core.domain.teacher.Teacher;
import be.dash.dashserver.core.log.annotation.Trace;
import lombok.RequiredArgsConstructor;

@Trace
Expand Down Expand Up @@ -50,8 +51,11 @@ public MyLessonDetailedResponse getMyLesson(long memberId, long lessonId) {
lessonService.validateOwner(teacher.getId(), lessonId);
Lesson lesson = lessonService.findById(lessonId);
Reservations reservations = reservationService.findAllByLessonIdOrderByCreatedAtDesc(lessonId);
List<Long> memberIds = studentsService.findAllByIds(reservations.getStudentIds()).stream().map(Student::getId).toList();
List<Member> members = memberService.findAllByIds(memberIds);
return MyLessonDetailedResponse.from(lesson, members);
List<Long> studentIds = studentsService.findAllByIds(reservations.getStudentIds()).stream()
.map(Student::getId)
.toList();
List<LocalDateTime> reservationDateTimes = reservations.getCreatedAt();
List<Member> members = memberService.findAllByIds(studentIds);
return MyLessonDetailedResponse.from(lesson, members, reservationDateTimes);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package be.dash.dashserver.api.core.member.dto;
package be.dash.dashserver.api.core.member;

import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.IntStream;
import be.dash.dashserver.api.core.member.dto.ApplyStatus;
import be.dash.dashserver.api.core.member.dto.MemberReservationResponse;
import be.dash.dashserver.core.domain.common.Genre;
import be.dash.dashserver.core.domain.common.Level;
import be.dash.dashserver.core.domain.lesson.Lesson;
Expand All @@ -16,11 +19,11 @@ public record MyLessonDetailedResponse(long id,
String detailedAddress,
LocalDateTime startDateTime,
LocalDateTime endDateTime,
APPLYSTATUS applyStatus,
ApplyStatus applyStatus,
List<MemberReservationResponse> students,
int studentCount
) {
public static MyLessonDetailedResponse from(Lesson lesson, List<Member> members) {
) {
public static MyLessonDetailedResponse from(Lesson lesson, List<Member> members, List<LocalDateTime> reservationDateTimes) {
return new MyLessonDetailedResponse(
lesson.getId(),
lesson.getName(),
Expand All @@ -31,8 +34,10 @@ public static MyLessonDetailedResponse from(Lesson lesson, List<Member> members)
lesson.getDetailedAddress(),
lesson.getRounds().getStartTime(),
lesson.getRounds().getEndTime(),
APPLYSTATUS.calculate(lesson.getStartTime(), lesson.getReservationCount(), lesson.getMaxReservationCount()),
members.stream().map(MemberReservationResponse::from).toList(),
ApplyStatus.calculate(lesson.getStartTime(), lesson.getReservationCount(), lesson.getMaxReservationCount()),
IntStream.range(0, members.size())
.mapToObj(i -> MemberReservationResponse.from(members.get(i), reservationDateTimes.get(i)))
.toList(),
members.size()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import java.time.LocalDateTime;

public enum APPLYSTATUS {
public enum ApplyStatus {
APPLYING, FINISHED;

public static APPLYSTATUS calculate(LocalDateTime startTime,
public static ApplyStatus calculate(LocalDateTime startTime,
long currentReservationCount,
long maxReservationCount) {
if (LocalDateTime.now().isAfter(startTime)) return FINISHED;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package be.dash.dashserver.api.core.member.dto;

import java.time.LocalDateTime;
import be.dash.dashserver.core.domain.member.Member;

public record MemberReservationResponse(String name,
String phoneNumber) {
public static MemberReservationResponse from(Member member) {
return new MemberReservationResponse(member.getName(), member.getPhoneNumber());
String phoneNumber,
LocalDateTime createdAt) {
public static MemberReservationResponse from(Member member, LocalDateTime createdAt) {
return new MemberReservationResponse(member.getName(), member.getPhoneNumber(), createdAt);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public record MyLessonResponse(long id,
String detailedAddress,
LocalDateTime startDateTime,
LocalDateTime endDateTime,
APPLYSTATUS applyStatus) {
ApplyStatus applyStatus) {
public static MyLessonResponse from(Lesson lesson) {
return new MyLessonResponse(
lesson.getId(),
Expand All @@ -26,7 +26,7 @@ public static MyLessonResponse from(Lesson lesson) {
lesson.getDetailedAddress(),
lesson.getRounds().getStartTime(),
lesson.getRounds().getEndTime(),
APPLYSTATUS.calculate(lesson.getStartTime(), lesson.getReservationCount(), lesson.getMaxReservationCount()
ApplyStatus.calculate(lesson.getStartTime(), lesson.getReservationCount(), lesson.getMaxReservationCount()
));
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package be.dash.dashserver.core.domain.reservation;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -27,4 +28,10 @@ public Set<Long> getLessonIds() {
public List<Long> getStudentIds() {
return reservations.stream().map(Reservation::getStudentId).toList();
}

public List<LocalDateTime> getCreatedAt() {
return reservations.stream()
.map(Reservation::getCreatedAt)
.toList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ public boolean isBooked(long memberId, long lessonId) {
return reservationRepository.existsByMemberIdAndLessonId(memberId, lessonId);
}

@Transactional
public long reserve(long memberId, long lessonId) {

return reservationRepository.save(memberId, lessonId);
}

Expand Down

0 comments on commit db16949

Please sign in to comment.