Skip to content

Commit

Permalink
feat: 특정 사람 게시물 모두 조회 기능
Browse files Browse the repository at this point in the history
  • Loading branch information
oxdjww committed Jul 4, 2024
1 parent 7ec4cb5 commit 2f75499
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ public ApiResponse<ArticleResponseDTO.ArticleListDTO> getAllArticles(@RequestPar
return ApiResponse.onSuccess(articles);
}

@GetMapping("/member/{memberId}")
public ApiResponse<ArticleResponseDTO.SimpleArticleListDTO> getMemberArticles(@PathVariable(name = "memberId") Long memberId) {
ArticleResponseDTO.SimpleArticleListDTO memberArticles = articleService.getMemberArticles(memberId);
return ApiResponse.onSuccess(memberArticles);
}

@GetMapping("/{articleId}")
public ApiResponse<ArticleResponseDTO.ArticleDetailDTO> getArticleDetail(@PathVariable Long articleId) {
ArticleResponseDTO.ArticleDetailDTO article = articleService.getArticleDetail(articleId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@
public interface ArticleRepository extends JpaRepository<Article, Long> {
@Query("SELECT a FROM Article a WHERE a.member.id = :memberId ORDER BY a.createdAt DESC")
List<Article> findTopByMemberIdOrderByCreatedAtDesc(@Param("memberId") Long memberId);
}

List<Article> findByMemberId(Long memberId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@
import java.util.List;

public class ArticleResponseDTO {

@Getter
@AllArgsConstructor
public static class SimpleArticleListDTO {
private List<SimpleArticleDTO> articles;
}

@Builder
@Getter
@NoArgsConstructor
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/com/hackathon/TimeLapse/article/ArticleService.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,25 @@ public ArticleResponseDTO.ArticleListDTO getAllArticles(Long memberId) {
return ArticleConverter.toArticleListDTO(articles, latestArticle);
}

@Transactional
public ArticleResponseDTO.SimpleArticleListDTO getMemberArticles(Long memberId) {
List<Article> articles = articleRepository.findByMemberId(memberId);
articles.forEach(article -> {
article.getImageList().size(); // Initialize lazy-loaded collections
});

List<SimpleArticleDTO> simpleArticleDTOs = articles.stream()
.map(article -> new SimpleArticleDTO(
article.getLatitude(),
article.getLongitude(),
article.getMember().getId(),
article.getTitle(),
article.getDescription()))
.collect(Collectors.toList());

return new ArticleResponseDTO.SimpleArticleListDTO(simpleArticleDTOs);
}

@Transactional
public ArticleResponseDTO.ArticleDetailDTO getArticleDetail(Long articleId) {
Article article = articleRepository.findById(articleId)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.hackathon.TimeLapse.article;

import lombok.AllArgsConstructor;

public record SimpleArticleDTO(
Double latitude,
Double longitude,
Long memberId,
String title,
String description
) {
}

0 comments on commit 2f75499

Please sign in to comment.