Skip to content

Commit a67e51b

Browse files
authored
Merge pull request #835 from Clubber2024/feat/#834-feat-관리자-캘린더-조회-api-구현
feat : 관리자 페이지 캘린더 조회 api 구현
2 parents 56f4f43 + 5f98352 commit a67e51b

6 files changed

Lines changed: 44 additions & 7 deletions

File tree

src/main/java/com/clubber/ClubberServer/domain/calendar/controller/CalendarController.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,29 @@
44
import com.clubber.ClubberServer.domain.calendar.dto.CreateCalendarResponse;
55
import com.clubber.ClubberServer.domain.calendar.dto.GetCalendarResponse;
66
import com.clubber.ClubberServer.domain.calendar.dto.UpdateCalendarRequest;
7-
import com.clubber.ClubberServer.domain.calendar.service.CalendarService;
7+
import com.clubber.ClubberServer.domain.calendar.entity.Calendar;
8+
import com.clubber.ClubberServer.domain.calendar.service.AdminCalendarService;
9+
import com.clubber.ClubberServer.global.common.page.PageResponse;
810
import lombok.RequiredArgsConstructor;
11+
import org.springframework.data.domain.Pageable;
912
import org.springframework.web.bind.annotation.*;
1013

1114
@RestController
1215
@RequiredArgsConstructor
13-
@RequestMapping("/api/v1/calendars")
16+
@RequestMapping("/api/v1/admins/calendars")
1417
public class CalendarController {
15-
private final CalendarService calendarService;
18+
private final AdminCalendarService calendarService;
1619

1720
@PostMapping
1821
public CreateCalendarResponse createCalendar(@RequestBody CreateCalendarRequest request) {
1922
return calendarService.createCalendar(request);
2023
}
2124

25+
@GetMapping
26+
public PageResponse<Calendar> getCalendars(Pageable pageable) {
27+
return calendarService.getCalenderPages(pageable);
28+
}
29+
2230
@GetMapping("/{id}")
2331
public GetCalendarResponse getCalendar(@PathVariable Long id) {
2432
return calendarService.getCalendar(id);

src/main/java/com/clubber/ClubberServer/domain/calendar/entity/Calendar.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.clubber.ClubberServer.domain.calendar.entity;
22

3+
import com.clubber.ClubberServer.domain.club.domain.Club;
34
import com.clubber.ClubberServer.domain.recruit.domain.RecruitType;
45
import com.clubber.ClubberServer.domain.user.domain.AccountRole;
56
import jakarta.persistence.*;
@@ -40,6 +41,10 @@ public class Calendar {
4041
@Enumerated(EnumType.STRING)
4142
private AccountRole writerRole;
4243

44+
@ManyToOne
45+
@JoinColumn(name = "club_id")
46+
private Club club;
47+
4348
private boolean isDeleted = false;
4449

4550
@Builder

src/main/java/com/clubber/ClubberServer/domain/calendar/implement/CalendarReader.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import com.clubber.ClubberServer.domain.calendar.entity.Calendar;
44
import com.clubber.ClubberServer.domain.calendar.exception.CalendarNotFoundException;
55
import com.clubber.ClubberServer.domain.calendar.repository.CalendarRepository;
6+
import com.clubber.ClubberServer.domain.club.domain.Club;
67
import lombok.RequiredArgsConstructor;
8+
import org.springframework.data.domain.Page;
9+
import org.springframework.data.domain.Pageable;
710
import org.springframework.stereotype.Component;
811
import org.springframework.transaction.annotation.Transactional;
912

@@ -17,4 +20,8 @@ public Calendar readById(Long id) {
1720
return calendarRepository.findCalendarByIdAndIsDeleted(id, false)
1821
.orElseThrow(() -> CalendarNotFoundException.EXCEPTION);
1922
}
23+
24+
public Page<Calendar> readClubCalendarPage(Club club, Pageable pageable) {
25+
return calendarRepository.findCalendarByClubAndIsDeleted(club, false, pageable);
26+
}
2027
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package com.clubber.ClubberServer.domain.calendar.repository;
22

33
import com.clubber.ClubberServer.domain.calendar.entity.Calendar;
4+
import com.clubber.ClubberServer.domain.club.domain.Club;
5+
import org.springframework.data.domain.Page;
6+
import org.springframework.data.domain.Pageable;
47
import org.springframework.data.jpa.repository.JpaRepository;
58

69
import java.util.Optional;
710

811
public interface CalendarRepository extends JpaRepository<Calendar, Long> {
912
Optional<Calendar> findCalendarByIdAndIsDeleted(Long id, boolean deleted);
13+
14+
Page<Calendar> findCalendarByClubAndIsDeleted(Club club, Boolean isDeleted, Pageable pageable);
1015
}

src/main/java/com/clubber/ClubberServer/domain/calendar/service/CalendarService.java renamed to src/main/java/com/clubber/ClubberServer/domain/calendar/service/AdminCalendarService.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,43 @@
11
package com.clubber.ClubberServer.domain.calendar.service;
22

3+
import com.clubber.ClubberServer.domain.admin.domain.Admin;
4+
import com.clubber.ClubberServer.domain.admin.implement.AdminReader;
35
import com.clubber.ClubberServer.domain.calendar.dto.CreateCalendarRequest;
46
import com.clubber.ClubberServer.domain.calendar.dto.CreateCalendarResponse;
57
import com.clubber.ClubberServer.domain.calendar.dto.GetCalendarResponse;
68
import com.clubber.ClubberServer.domain.calendar.dto.UpdateCalendarRequest;
79
import com.clubber.ClubberServer.domain.calendar.entity.Calendar;
810
import com.clubber.ClubberServer.domain.calendar.implement.CalendarAppender;
911
import com.clubber.ClubberServer.domain.calendar.implement.CalendarReader;
12+
import com.clubber.ClubberServer.domain.club.domain.Club;
13+
import com.clubber.ClubberServer.global.common.page.PageResponse;
1014
import lombok.RequiredArgsConstructor;
15+
import org.springframework.data.domain.Page;
16+
import org.springframework.data.domain.Pageable;
1117
import org.springframework.stereotype.Service;
1218
import org.springframework.transaction.annotation.Transactional;
1319

1420
@Service
1521
@RequiredArgsConstructor
1622
@Transactional
17-
public class CalendarService {
23+
public class AdminCalendarService {
1824
private final CalendarAppender calendarAppender;
1925
private final CalendarReader calendarReader;
26+
private final AdminReader adminReader;
2027

2128
public CreateCalendarResponse createCalendar(CreateCalendarRequest request) {
2229
Calendar calendar = request.toEntity();
2330
Calendar savedCalendar = calendarAppender.append(calendar);
2431
return CreateCalendarResponse.from(savedCalendar);
2532
}
2633

34+
public PageResponse<Calendar> getCalenderPages(Pageable pageable) {
35+
Admin admin = adminReader.getCurrentAdmin();
36+
Club club = admin.getClub();
37+
Page<Calendar> calendars = calendarReader.readClubCalendarPage(club, pageable);
38+
return PageResponse.of(calendars);
39+
}
40+
2741
public GetCalendarResponse getCalendar(Long id) {
2842
Calendar calendar = calendarReader.readById(id);
2943
return GetCalendarResponse.from(calendar);

src/main/java/com/clubber/ClubberServer/global/config/security/SecurityConfig.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
8989
.permitAll()
9090
.requestMatchers("/api/v1/perspective/**")
9191
.permitAll()
92-
.requestMatchers(HttpMethod.GET,"/api/v1/calendars/**")
93-
.permitAll()
94-
.requestMatchers("/api/v1/calendars/**")
92+
.requestMatchers("/api/v1/admins/calendars/**")
9593
.hasRole("ADMIN")
9694
.anyRequest()
9795
.hasRole("USER"));

0 commit comments

Comments
 (0)