11.09 save
This commit is contained in:
@@ -28,6 +28,12 @@ public class ArticleController {
|
||||
return ArticleResponse.MultiArticles.builder().articles(articles).articlesCount(articles.size()).build();
|
||||
}
|
||||
|
||||
@GetMapping("/feed")
|
||||
public ArticleResponse.MultiArticles getFeed(@AuthenticationPrincipal UserAuth userAuth, @ModelAttribute FeedParam feedParam){
|
||||
List<ArticleResponse> articles = articleService.getFeed(userAuth, feedParam);
|
||||
return ArticleResponse.MultiArticles.builder().articles(articles).articlesCount(articles.size()).build();
|
||||
}
|
||||
|
||||
@GetMapping("/{slug}")
|
||||
public ArticleResponse.SingleArticle getArticle(@AuthenticationPrincipal UserAuth userAuth, @PathVariable("slug") String slug) {
|
||||
return ArticleResponse.SingleArticle.builder().article(articleService.getArticle(userAuth, slug)).build();
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.io.realworld.domain.aggregate.article.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class FeedParam {
|
||||
private Integer offset;
|
||||
private Integer limit;
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.io.realworld.domain.aggregate.article.service;
|
||||
|
||||
import com.io.realworld.domain.aggregate.article.dto.ArticleParam;
|
||||
import com.io.realworld.domain.aggregate.article.dto.ArticleUpdate;
|
||||
import com.io.realworld.domain.aggregate.article.dto.Articledto;
|
||||
import com.io.realworld.domain.aggregate.article.dto.ArticleResponse;
|
||||
import com.io.realworld.domain.aggregate.article.dto.*;
|
||||
import com.io.realworld.domain.aggregate.user.dto.UserAuth;
|
||||
|
||||
import java.util.List;
|
||||
@@ -12,6 +9,8 @@ import java.util.List;
|
||||
public interface ArticleService {
|
||||
List<ArticleResponse> getArticles(UserAuth userAuth, ArticleParam articleParam);
|
||||
|
||||
List<ArticleResponse> getFeed(UserAuth userAuth, FeedParam feedParam);
|
||||
|
||||
ArticleResponse getArticle(UserAuth userAuth, String slug);
|
||||
|
||||
ArticleResponse createArticle(UserAuth userAuth, Articledto article);
|
||||
@@ -25,4 +24,5 @@ public interface ArticleService {
|
||||
ArticleResponse unFavoriteArticle(UserAuth userAuth, String slug);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package com.io.realworld.domain.aggregate.article.service;
|
||||
|
||||
import com.io.realworld.domain.aggregate.article.dto.ArticleParam;
|
||||
import com.io.realworld.domain.aggregate.article.dto.ArticleUpdate;
|
||||
import com.io.realworld.domain.aggregate.article.dto.Articledto;
|
||||
import com.io.realworld.domain.aggregate.article.dto.ArticleResponse;
|
||||
import com.io.realworld.domain.aggregate.article.dto.*;
|
||||
import com.io.realworld.domain.aggregate.article.entity.Article;
|
||||
import com.io.realworld.domain.aggregate.article.entity.Favorite;
|
||||
import com.io.realworld.domain.aggregate.article.repository.ArticleRepository;
|
||||
import com.io.realworld.domain.aggregate.article.repository.FavoriteRepository;
|
||||
import com.io.realworld.domain.aggregate.profile.dto.ProfileResponse;
|
||||
import com.io.realworld.domain.aggregate.profile.entity.Follow;
|
||||
import com.io.realworld.domain.aggregate.profile.repository.ProfileRepository;
|
||||
import com.io.realworld.domain.aggregate.profile.service.ProfileService;
|
||||
import com.io.realworld.domain.aggregate.tag.entity.Tag;
|
||||
import com.io.realworld.domain.aggregate.tag.service.TagService;
|
||||
@@ -35,7 +34,7 @@ import java.util.stream.Stream;
|
||||
@RequiredArgsConstructor
|
||||
public class ArticleServiceImpl implements ArticleService {
|
||||
|
||||
private final TagService tagService;
|
||||
private final ProfileRepository profileRepository;
|
||||
private final ProfileService profileService;
|
||||
private final UserRepository userRepository;
|
||||
private final ArticleRepository articleRepository;
|
||||
@@ -68,6 +67,21 @@ public class ArticleServiceImpl implements ArticleService {
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ArticleResponse> getFeed(UserAuth userAuth, FeedParam feedParam){
|
||||
List<Article> articles = new ArrayList<>();
|
||||
Integer offset = feedParam.getOffset() == null ? 0 : feedParam.getOffset();
|
||||
Integer limit = feedParam.getLimit() == null ? 20 : feedParam.getLimit();
|
||||
|
||||
Pageable pageable = PageRequest.of(offset,limit);
|
||||
|
||||
List<Follow> follows = profileRepository.findByFollowerId(userAuth.getId());
|
||||
System.out.println(follows.size());
|
||||
follows.stream().forEach(follow -> System.out.println(follow.getFollower().getUsername()));
|
||||
|
||||
return List.of();
|
||||
}
|
||||
|
||||
// token을 받을수도 안 받을수도 있음.
|
||||
@Override
|
||||
public ArticleResponse getArticle(UserAuth userAuth, String slug) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.io.realworld.domain.aggregate.profile.repository;
|
||||
import com.io.realworld.domain.aggregate.profile.entity.Follow;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
@@ -10,4 +11,6 @@ public interface ProfileRepository extends JpaRepository<Follow, Long> {
|
||||
|
||||
Optional<Follow> findByFolloweeIdAndFollowerId(Long followeeId, Long followerId);
|
||||
|
||||
List<Follow> findByFollowerId(Long followeeId);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user