Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -43,4 +46,10 @@ public void subscribeGoogleCalendar(@RequestParam(value = "code", required = fal

response.sendRedirect(redirectUrl);
}

@GetMapping("/calendar/list")
public ResponseEntity<ListResponse<CalendarResponse>> calendarList() {
ListResponse<CalendarResponse> response = calendarService.getCalendarList();
return ResponseEntity.ok(response);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ public interface CalendarRepository extends JpaRepository<Calendar, Long> {
+ "FROM Calendar c "
+ "WHERE c.user.id IN :userIds")
List<Object[]> findCalendarIdsByUserIds(@Param("userIds") List<Long> userIds);

List<Calendar> findAllByUserId(Long userId);
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;
Expand All @@ -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);
}

Expand Down Expand Up @@ -119,4 +122,14 @@ public void linkGoogleCalender(String code) {

eventPublisher.publishEvent(new GoogleCalendarLinkEvent(user));
}

public ListResponse<CalendarResponse> getCalendarList() {
User user = userService.getCurrentUser();

List<Calendar> calendars = calendarRepository.findAllByUserId(user.getId());

List<CalendarResponse> response = calendars.stream()
.map(c -> new CalendarResponse(c.getName())).toList();
return new ListResponse<>(response);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package endolphin.backend.domain.calendar.dto;

public record CalendarResponse(
String name
) {

}
Loading