From fe85b04eb62f109d33f7daabb63e1f0a1f4b33fc Mon Sep 17 00:00:00 2001 From: kwon204 Date: Mon, 14 Apr 2025 23:12:50 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=BA=98?= =?UTF-8?q?=EB=A6=B0=EB=8D=94=20=EC=A0=95=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/calendar/CalendarController.java | 9 ++++++++ .../domain/calendar/CalendarRepository.java | 2 ++ .../domain/calendar/CalendarService.java | 21 +++++++++++++++---- .../domain/calendar/dto/CalendarResponse.java | 7 +++++++ 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 backend/src/main/java/endolphin/backend/domain/calendar/dto/CalendarResponse.java diff --git a/backend/src/main/java/endolphin/backend/domain/calendar/CalendarController.java b/backend/src/main/java/endolphin/backend/domain/calendar/CalendarController.java index 74c00b70..ff472037 100644 --- a/backend/src/main/java/endolphin/backend/domain/calendar/CalendarController.java +++ b/backend/src/main/java/endolphin/backend/domain/calendar/CalendarController.java @@ -1,10 +1,13 @@ package endolphin.backend.domain.calendar; +import endolphin.backend.domain.calendar.dto.CalendarResponse; +import endolphin.backend.global.dto.ListResponse; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -43,4 +46,10 @@ public void subscribeGoogleCalendar(@RequestParam(value = "code", required = fal response.sendRedirect(redirectUrl); } + + @GetMapping("/calendar/list") + public ResponseEntity> calendarList() { + ListResponse response = calendarService.getCalendarList(); + return ResponseEntity.ok(response); + } } diff --git a/backend/src/main/java/endolphin/backend/domain/calendar/CalendarRepository.java b/backend/src/main/java/endolphin/backend/domain/calendar/CalendarRepository.java index aecfa23b..914694f6 100644 --- a/backend/src/main/java/endolphin/backend/domain/calendar/CalendarRepository.java +++ b/backend/src/main/java/endolphin/backend/domain/calendar/CalendarRepository.java @@ -21,4 +21,6 @@ public interface CalendarRepository extends JpaRepository { + "FROM Calendar c " + "WHERE c.user.id IN :userIds") List findCalendarIdsByUserIds(@Param("userIds") List userIds); + + List findAllByUserId(Long userId); } diff --git a/backend/src/main/java/endolphin/backend/domain/calendar/CalendarService.java b/backend/src/main/java/endolphin/backend/domain/calendar/CalendarService.java index eda2ebb9..8eb2a174 100644 --- a/backend/src/main/java/endolphin/backend/domain/calendar/CalendarService.java +++ b/backend/src/main/java/endolphin/backend/domain/calendar/CalendarService.java @@ -1,9 +1,11 @@ package endolphin.backend.domain.calendar; +import endolphin.backend.domain.calendar.dto.CalendarResponse; import endolphin.backend.domain.calendar.entity.Calendar; import endolphin.backend.domain.calendar.event.GoogleCalendarLinkEvent; import endolphin.backend.domain.user.UserService; import endolphin.backend.domain.user.entity.User; +import endolphin.backend.global.dto.ListResponse; import endolphin.backend.global.error.exception.CalendarException; import endolphin.backend.global.error.exception.ErrorCode; import endolphin.backend.global.google.GoogleOAuthService; @@ -12,6 +14,7 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -37,10 +40,10 @@ public class CalendarService { public Calendar attachGoogleCalendar(GoogleCalendarDto googleCalendarDto, User user) { Calendar calendar = Calendar.builder() - .user(user) - .calendarId(googleCalendarDto.id()) - .name(googleCalendarDto.summary()) - .description(googleCalendarDto.description()).build(); + .user(user) + .calendarId(googleCalendarDto.id()) + .name(googleCalendarDto.summary()) + .description(googleCalendarDto.description()).build(); return calendarRepository.save(calendar); } @@ -119,4 +122,14 @@ public void linkGoogleCalender(String code) { eventPublisher.publishEvent(new GoogleCalendarLinkEvent(user)); } + + public ListResponse getCalendarList() { + User user = userService.getCurrentUser(); + + List calendars = calendarRepository.findAllByUserId(user.getId()); + + List response = calendars.stream() + .map(c -> new CalendarResponse(c.getName())).toList(); + return new ListResponse<>(response); + } } diff --git a/backend/src/main/java/endolphin/backend/domain/calendar/dto/CalendarResponse.java b/backend/src/main/java/endolphin/backend/domain/calendar/dto/CalendarResponse.java new file mode 100644 index 00000000..94fce799 --- /dev/null +++ b/backend/src/main/java/endolphin/backend/domain/calendar/dto/CalendarResponse.java @@ -0,0 +1,7 @@ +package endolphin.backend.domain.calendar.dto; + +public record CalendarResponse( + String name +) { + +}