diff --git a/src/main/java/cc/backend/photoAlbum/controller/PhotoAlbumController.java b/src/main/java/cc/backend/photoAlbum/controller/PhotoAlbumController.java index 3032c1f1..b295731b 100644 --- a/src/main/java/cc/backend/photoAlbum/controller/PhotoAlbumController.java +++ b/src/main/java/cc/backend/photoAlbum/controller/PhotoAlbumController.java @@ -1,6 +1,7 @@ package cc.backend.photoAlbum.controller; import cc.backend.apiPayLoad.ApiResponse; +import cc.backend.apiPayLoad.PageResponse; import cc.backend.apiPayLoad.SliceResponse; import cc.backend.member.entity.Member; import cc.backend.photoAlbum.dto.PerformerShowListResponseDTO; @@ -60,11 +61,11 @@ public ApiResponse up @GetMapping("/member/{memberId}") @Operation(summary = "등록자 계정의 전체 사진첩 피드 조회 API", description = "등록자의 사진첩 피드를 전체 조회하는 API 입니다.") - public ApiResponse> getPhotoAlbumList( + public ApiResponse> getPhotoAlbumList( @AuthenticationPrincipal(expression = "member") Member member, @PathVariable("memberId") Long performerId, @ParameterObject Pageable pageable) { - return ApiResponse.onSuccess(SliceResponse.of(photoAlbumService.getPhotoAlbumList(member.getId(), performerId, pageable))); + return ApiResponse.onSuccess((photoAlbumService.getPhotoAlbumList(member.getId(), performerId, pageable))); } @PreAuthorize("hasRole('PERFORMER')") diff --git a/src/main/java/cc/backend/photoAlbum/repository/PhotoAlbumRepository.java b/src/main/java/cc/backend/photoAlbum/repository/PhotoAlbumRepository.java index 3224029f..ada88846 100644 --- a/src/main/java/cc/backend/photoAlbum/repository/PhotoAlbumRepository.java +++ b/src/main/java/cc/backend/photoAlbum/repository/PhotoAlbumRepository.java @@ -29,7 +29,7 @@ OR CAST(p.amateurShow.id AS string) LIKE %:keyword% JOIN a.member m WHERE m.id = :performerId """) - Slice findByPerformerId( + Page findByPerformerId( @Param("performerId") Long performerId, Pageable pageable ); diff --git a/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumService.java b/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumService.java index b7e055ff..cb09fc6e 100644 --- a/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumService.java +++ b/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumService.java @@ -1,5 +1,6 @@ package cc.backend.photoAlbum.service; +import cc.backend.apiPayLoad.PageResponse; import cc.backend.photoAlbum.dto.PerformerShowListResponseDTO; import cc.backend.photoAlbum.dto.PhotoAlbumRequestDTO; import cc.backend.photoAlbum.dto.PhotoAlbumResponseDTO; @@ -15,7 +16,7 @@ public interface PhotoAlbumService { public PhotoAlbumResponseDTO.PhotoAlbumResultWithPresignedUrlDTO createPhotoAlbum(PhotoAlbumRequestDTO.CreatePhotoAlbumDTO requestDTO, Long memberId); public PhotoAlbumResponseDTO.PhotoAlbumResultWithPresignedUrlDTO getPhotoAlbum(Long photoAlbumId, Long memberId); - public Slice getPhotoAlbumList(Long memberId, Long performerId, Pageable pageable); + public PageResponse getPhotoAlbumList(Long memberId, Long performerId, Pageable pageable); public PhotoAlbumResponseDTO.PhotoAlbumResultDTO updatePhotoAlbum(Long photoAlbumId, PhotoAlbumRequestDTO.CreatePhotoAlbumDTO requestDTO, Long memberId); public String deletePhotoAlbum(Long photoAlbumId, Long memberId); public PhotoAlbumResponseDTO.ScrollMemberPhotoAlbumDTO getAllRecentPhotoAlbumList(Long cursorId, LocalDateTime updatedAt, int size); diff --git a/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumServiceImpl.java b/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumServiceImpl.java index b181a8c6..66a73d56 100644 --- a/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumServiceImpl.java +++ b/src/main/java/cc/backend/photoAlbum/service/PhotoAlbumServiceImpl.java @@ -2,9 +2,9 @@ import cc.backend.amateurShow.entity.AmateurShow; import cc.backend.amateurShow.repository.AmateurShowRepository; +import cc.backend.apiPayLoad.PageResponse; import cc.backend.apiPayLoad.code.status.ErrorStatus; import cc.backend.apiPayLoad.exception.GeneralException; -import cc.backend.config.s3.S3Service; import cc.backend.image.DTO.ImageRequestDTO; import cc.backend.image.DTO.ImageResponseDTO; import cc.backend.image.FilePath; @@ -28,7 +28,6 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.function.Function; import java.util.stream.Collectors; import static cc.backend.amateurShow.converter.AmateurConverter.mergeSchedule; @@ -118,7 +117,7 @@ public PhotoAlbumResponseDTO.PhotoAlbumResultWithPresignedUrlDTO getPhotoAlbum(L } @Override - public Slice getPhotoAlbumList(Long memberId, Long performerId, Pageable pageable){ + public PageResponse getPhotoAlbumList(Long memberId, Long performerId, Pageable pageable){ //로그인 검사 memberRepository.findById(memberId) .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_AUTHORIZED)); @@ -132,11 +131,10 @@ public Slice getPhotoAlbumList(Long m ); // 사진첩 단위 조회 - Slice albumSlice = photoAlbumRepository.findByPerformerId(performerId, sortedPageable); - List albums = albumSlice.getContent(); + Page albumPage = photoAlbumRepository.findByPerformerId(performerId, sortedPageable); // 사진첩 id 추출 - List albumIds = albums.stream() + List albumIds = albumPage.stream() .map(PhotoAlbum::getId) .toList(); @@ -144,8 +142,8 @@ public Slice getPhotoAlbumList(Long m Map imageDtoMap = getFirstImageDTOForPhotoAlbums(albumIds); - // DTO 변환 - List content = albums.stream() + // DTO 변환 - stream으로 하면 메타데이터 다 날라가서 Page.map()으로 바로 변환 + Page content = albumPage .map(album -> PhotoAlbumResponseDTO.SinglePhotoAlbumDTO.builder() .amateurShowId(album.getAmateurShow().getId()) .photoAlbumId(album.getId()) @@ -154,10 +152,9 @@ public Slice getPhotoAlbumList(Long m .detailAddress(album.getAmateurShow().getDetailAddress()) .imageResultWithPresignedUrlDTO(imageDtoMap.get(album.getId())) .build() - ) - .toList(); + ); - return new SliceImpl<>(content, sortedPageable, albumSlice.hasNext()); + return PageResponse.of(content); } @Override