diff --git a/src/main/java/org/winey/server/controller/FeedController.java b/src/main/java/org/winey/server/controller/FeedController.java index 1bfd870..e88ccc3 100644 --- a/src/main/java/org/winey/server/controller/FeedController.java +++ b/src/main/java/org/winey/server/controller/FeedController.java @@ -8,13 +8,10 @@ import org.winey.server.controller.request.CreateFeedRequestDto; import org.winey.server.controller.response.feed.CreateFeedResponseDto; import org.winey.server.controller.response.feed.GetAllFeedResponseDto; -import org.winey.server.controller.response.recommend.RecommendListResponseDto; import org.winey.server.exception.Success; import org.winey.server.external.client.aws.S3Service; import org.winey.server.service.FeedService; -import javax.validation.Valid; - @RestController @RequiredArgsConstructor @RequestMapping("/feed") @@ -49,4 +46,10 @@ public ApiResponse deleteFeed( public ApiResponse getAllFeed(@RequestParam int page, @RequestHeader Long userId) { return ApiResponse.success(Success.GET_FEED_LIST_SUCCESS, feedService.getAllFeed(page, userId)); } + + @GetMapping("/myFeed") + @ResponseStatus(HttpStatus.OK) + public ApiResponse getMyFeed(@RequestParam int page, @RequestHeader Long userId){ + return ApiResponse.success(Success.GET_MYFEED_SUCCESS, feedService.getMyFeed(page, userId)); + } } diff --git a/src/main/java/org/winey/server/exception/Success.java b/src/main/java/org/winey/server/exception/Success.java index 5cc0469..9563533 100644 --- a/src/main/java/org/winey/server/exception/Success.java +++ b/src/main/java/org/winey/server/exception/Success.java @@ -15,6 +15,7 @@ public enum Success { GET_RECOMMEND_LIST_SUCCESS(HttpStatus.OK, "추천 위니 전체 조회 성공"), GET_FEED_LIST_SUCCESS(HttpStatus.OK, "피드 전체 조회 성공"), GET_USER_SUCCESS(HttpStatus.OK, "유저 조회 성공"), + GET_MYFEED_SUCCESS(HttpStatus.OK, "마이 피드 조회 성공"), /** * 201 CREATED diff --git a/src/main/java/org/winey/server/infrastructure/FeedRepository.java b/src/main/java/org/winey/server/infrastructure/FeedRepository.java index f260967..11fbb06 100644 --- a/src/main/java/org/winey/server/infrastructure/FeedRepository.java +++ b/src/main/java/org/winey/server/infrastructure/FeedRepository.java @@ -5,6 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.Repository; import org.winey.server.domain.feed.Feed; +import org.winey.server.domain.user.User; import java.util.List; import java.util.Optional; @@ -13,6 +14,6 @@ public interface FeedRepository extends Repository { void save(Feed feed); Optional findByFeedId(Long feedId); void delete(Feed feed); - Page findAllByOrderByCreatedAtDesc(Pageable pageable); + Page findAllByUserOrderByCreatedAtDesc(User user, Pageable pageable); } diff --git a/src/main/java/org/winey/server/service/FeedService.java b/src/main/java/org/winey/server/service/FeedService.java index 1552d42..db366dc 100644 --- a/src/main/java/org/winey/server/service/FeedService.java +++ b/src/main/java/org/winey/server/service/FeedService.java @@ -8,10 +8,7 @@ import org.winey.server.common.dto.ApiResponse; import org.winey.server.controller.request.CreateFeedRequestDto; import org.winey.server.controller.response.PageResponseDto; -import org.winey.server.controller.response.feed.CreateFeedResponseDto; -import org.winey.server.controller.response.feed.GetAllFeedResponseDto; -import org.winey.server.controller.response.feed.GetFeedResponseDto; -import org.winey.server.controller.response.feed.GetWriterResponseDto; +import org.winey.server.controller.response.feed.*; import org.winey.server.controller.response.recommend.RecommendResponseDto; import org.winey.server.domain.feed.Feed; import org.winey.server.domain.goal.Goal; @@ -119,7 +116,27 @@ public GetAllFeedResponseDto getAllFeed(int page, Long userId){ feed.getCreatedAt().toLocalDate() //해당 피드 만든 날짜 localdate로 바꿔서 주기. )).collect(Collectors.toList()); return GetAllFeedResponseDto.of(pageInfo,feeds); + } + public GetAllFeedResponseDto getMyFeed(int page, Long userId){ + User myUser = userRepository.findByUserId(userId).orElseThrow(()-> new NotFoundException(Error.NOT_FOUND_USER_EXCEPTION, Error.NOT_FOUND_USER_EXCEPTION.getMessage())); + PageRequest pageRequest = PageRequest.of(page, 50); + Page myFeedPage = feedRepository.findAllByUserOrderByCreatedAtDesc(myUser,pageRequest); + PageResponseDto pageInfo = PageResponseDto.of(myFeedPage.getTotalPages(), myFeedPage.getNumber() + 1, (myFeedPage.getTotalPages() == myFeedPage.getNumber() + 1)); + List feeds = myFeedPage.stream() + .map(myFeed -> GetFeedResponseDto.of( + myFeed.getFeedId(), + myFeed.getUser().getUserId(), + myFeed.getUser().getNickname(), + myFeed.getUser().getUserLevel().getLevelNumber(), + myFeed.getFeedTitle(), + myFeed.getFeedImage(), + myFeed.getFeedMoney(), + feedLikeRepository.existsByFeedAndUser(myFeed,myUser), //현재 접속한 유저가 좋아요 눌렀는지 + feedLikeRepository.countByFeed(myFeed), //해당 피드의 좋아요 개수 세기. + myFeed.getCreatedAt().toLocalDate() //해당 피드 만든 날짜 localdate로 바꿔서 주기. + )).collect(Collectors.toList()); + return GetAllFeedResponseDto.of(pageInfo,feeds); } }