diff --git a/src/main/java/classfit/example/classfit/event/controller/EventController.java b/src/main/java/classfit/example/classfit/event/controller/EventController.java index a0b88d0d..e381bda4 100644 --- a/src/main/java/classfit/example/classfit/event/controller/EventController.java +++ b/src/main/java/classfit/example/classfit/event/controller/EventController.java @@ -5,6 +5,7 @@ import classfit.example.classfit.event.dto.request.EventModalRequest; import classfit.example.classfit.common.ApiResponse; import classfit.example.classfit.event.dto.request.EventCreateRequest; +import classfit.example.classfit.event.dto.response.EventModalResponse; import classfit.example.classfit.event.dto.response.EventMontylyResponse; import classfit.example.classfit.event.dto.response.EventResponse; import classfit.example.classfit.event.service.EventService; @@ -74,10 +75,10 @@ public ApiResponse createModalEvent( @GetMapping("/modal/{eventId}") @Operation(summary = "모달 일정 상세 조회", description = "모달 일정을 상세조회하는 api 입니다.") - public ApiResponse getEventDetails( + public ApiResponse getEventDetails( @PathVariable Long eventId ) { - EventResponse event = eventService.getEvent(eventId); + EventModalResponse event = eventService.getEvent(eventId); return ApiResponse.success(event, 200, "SUCCESS"); } diff --git a/src/main/java/classfit/example/classfit/event/domain/Event.java b/src/main/java/classfit/example/classfit/event/domain/Event.java index bd0f463f..8be84455 100644 --- a/src/main/java/classfit/example/classfit/event/domain/Event.java +++ b/src/main/java/classfit/example/classfit/event/domain/Event.java @@ -2,6 +2,7 @@ import classfit.example.classfit.calendarCategory.domain.CalendarCategory; import classfit.example.classfit.common.domain.BaseEntity; +import classfit.example.classfit.event.dto.response.EventModalResponse; import classfit.example.classfit.event.dto.response.EventResponse; import classfit.example.classfit.eventMember.domain.EventMember; import classfit.example.classfit.member.domain.Member; @@ -140,4 +141,20 @@ public static EventResponse buildEventResponse(Event event) { event.getEndDate() ); } + + public static EventModalResponse buildModalEventResponse(Event event) { + Long categoryId = (event.getCategory() != null) ? event.getCategory().getId() : null; + + return EventModalResponse.of( + event.getId(), + event.getName(), + event.getEventType(), + event.getStartDate(), + event.getEndDate(), + categoryId, + event.getEventRepeatType(), + event.getRepeatEndDate(), + event.isAllDay() + ); + } } diff --git a/src/main/java/classfit/example/classfit/event/dto/response/EventModalResponse.java b/src/main/java/classfit/example/classfit/event/dto/response/EventModalResponse.java new file mode 100644 index 00000000..a406060f --- /dev/null +++ b/src/main/java/classfit/example/classfit/event/dto/response/EventModalResponse.java @@ -0,0 +1,22 @@ +package classfit.example.classfit.event.dto.response; + +import classfit.example.classfit.event.domain.EventRepeatType; +import classfit.example.classfit.event.domain.EventType; +import java.time.LocalDateTime; + +public record EventModalResponse + ( + Long id, + String name, + EventType eventType, + LocalDateTime startDate, + LocalDateTime endDate, + Long categoryId, + EventRepeatType eventRepeatType, + LocalDateTime repeatEndDate, + boolean isAllDay + ) { + public static EventModalResponse of(final Long id, final String name, final EventType eventType, final LocalDateTime startDate, final LocalDateTime endDate, final Long categoryId, final EventRepeatType eventRepeatType, final LocalDateTime repeatEndDate, final boolean isAllDay) { + return new EventModalResponse(id, name, eventType, startDate, endDate, categoryId, eventRepeatType, repeatEndDate, isAllDay); + } +} diff --git a/src/main/java/classfit/example/classfit/event/service/EventGetService.java b/src/main/java/classfit/example/classfit/event/service/EventGetService.java index f3e8ab72..bb098abf 100644 --- a/src/main/java/classfit/example/classfit/event/service/EventGetService.java +++ b/src/main/java/classfit/example/classfit/event/service/EventGetService.java @@ -4,6 +4,7 @@ import classfit.example.classfit.common.exception.ClassfitException; import classfit.example.classfit.event.domain.Event; +import classfit.example.classfit.event.dto.response.EventModalResponse; import classfit.example.classfit.event.dto.response.EventMontylyResponse; import classfit.example.classfit.event.dto.response.EventResponse; import classfit.example.classfit.event.repository.EventRepository; @@ -23,9 +24,9 @@ public class EventGetService { private final EventRepository eventRepository; @Transactional(readOnly = true) - public EventResponse getEvent(long eventId) { + public EventModalResponse getEvent(long eventId) { Event event = getEventById(eventId); - return Event.buildEventResponse(event); + return Event.buildModalEventResponse(event); } private Event getEventById(long eventId) { diff --git a/src/main/java/classfit/example/classfit/event/service/EventRepeatService.java b/src/main/java/classfit/example/classfit/event/service/EventRepeatService.java index 7868f235..d53df5b4 100644 --- a/src/main/java/classfit/example/classfit/event/service/EventRepeatService.java +++ b/src/main/java/classfit/example/classfit/event/service/EventRepeatService.java @@ -26,8 +26,8 @@ public void addRepeatedEvents(Member member, EventCreateRequest request) { return; } - LocalDateTime currentStartDate = request.startDate(); - LocalDateTime currentEndDate = request.endDate(); + LocalDateTime currentStartDate = getNextRepeatDate(request.startDate(), request.eventRepeatType()); + LocalDateTime currentEndDate = getNextRepeatDate(request.endDate(), request.eventRepeatType()); LocalDateTime repeatEndDate = request.repeatEndDate().orElse(currentStartDate.plusMonths(6)); generateRepeatedEvents(member, request, currentStartDate, currentEndDate, repeatEndDate); @@ -82,8 +82,8 @@ public void addRepeatedModalEvents(Member member, EventModalRequest request) { return; } - LocalDateTime currentStartDate = request.startDate(); - LocalDateTime currentEndDate = request.endDate(); + LocalDateTime currentStartDate = getNextRepeatDate(request.startDate(), request.eventRepeatType()); + LocalDateTime currentEndDate = getNextRepeatDate(request.endDate(), request.eventRepeatType()); LocalDateTime repeatEndDate = request.repeatEndDate().orElse(currentStartDate.plusMonths(6)); generateRepeatedModalEvents(member, request, currentStartDate, currentEndDate, repeatEndDate); diff --git a/src/main/java/classfit/example/classfit/event/service/EventService.java b/src/main/java/classfit/example/classfit/event/service/EventService.java index 6b215f23..6ff0e74e 100644 --- a/src/main/java/classfit/example/classfit/event/service/EventService.java +++ b/src/main/java/classfit/example/classfit/event/service/EventService.java @@ -7,6 +7,7 @@ import classfit.example.classfit.event.dto.request.EventCreateRequest; import classfit.example.classfit.event.dto.request.EventDragUpdate; import classfit.example.classfit.event.dto.request.EventModalRequest; +import classfit.example.classfit.event.dto.response.EventModalResponse; import classfit.example.classfit.event.dto.response.EventMontylyResponse; import classfit.example.classfit.event.dto.response.EventResponse; import classfit.example.classfit.event.repository.EventRepository; @@ -38,7 +39,7 @@ public EventResponse updateEvent(Member member, long eventId, EventModalRequest return eventUpdateService.updateEvent(member, eventId, request); } - public EventResponse getEvent(long eventId) { + public EventModalResponse getEvent(long eventId) { return eventGetService.getEvent(eventId); }