11.09 save

This commit is contained in:
kms
2022-11-09 22:33:38 +09:00
parent 5ff5436138
commit f9d2761982
5 changed files with 43 additions and 9 deletions

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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) {

View File

@@ -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);
}