Skip to content

Commit 3d336bf

Browse files
committed
fix[post]:fix updatedAt
1 parent bda8c6b commit 3d336bf

File tree

6 files changed

+39
-35
lines changed

6 files changed

+39
-35
lines changed

backend/src/main/java/com/ai/lawyer/domain/post/controller/PostController.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -129,24 +129,16 @@ public ResponseEntity<ApiResponse<PostDto>> getMyPostById(@PathVariable Long pos
129129
return ResponseEntity.ok(new ApiResponse<>(200, "본인 게시글 단일 조회 성공", postDto));
130130
}
131131

132-
// @Operation(summary = "본인 게시글 전체 조회")
133-
// @GetMapping("/my")
134-
// public ResponseEntity<ApiResponse<PostPageDto>> getMyPosts(
135-
// @RequestParam(defaultValue = "0") int page,
136-
// @RequestParam(defaultValue = "10") int size
137-
// ) {
138-
// Pageable pageable = PageRequest.of(page, size, Sort.by("updatedAt").descending());
139-
// Long memberId = AuthUtil.getAuthenticatedMemberId();
140-
// PostPageDto response = postService.getMyPosts(pageable, memberId);
141-
// return ResponseEntity.ok(new ApiResponse<>(200, "본인 게시글 전체 조회 성공", response));
142-
// }
143-
144132
@Operation(summary = "본인 게시글 전체 조회")
145133
@GetMapping("/my")
146-
public ResponseEntity<ApiResponse<List<PostDto>>> getMyPosts() {
134+
public ResponseEntity<ApiResponse<Page<PostDto>>> getMyPosts(
135+
@RequestParam(defaultValue = "0") int page,
136+
@RequestParam(defaultValue = "10") int size
137+
) {
138+
Pageable pageable = PageRequest.of(page, size, org.springframework.data.domain.Sort.by("updatedAt").descending());
147139
Long memberId = AuthUtil.getAuthenticatedMemberId();
148-
List<PostDto> posts = postService.getMyPosts(memberId);
149-
return ResponseEntity.ok(new ApiResponse<>(200, "본인 게시글 전체 조회 성공", posts));
140+
Page<PostDto> response = postService.getMyPosts(pageable, memberId);
141+
return ResponseEntity.ok(new ApiResponse<>(200, "본인 게시글 전체 조회 성공", response));
150142
}
151143

152144
@Operation(summary = "게시글+투표 동시 등록")

backend/src/main/java/com/ai/lawyer/domain/post/repository/PostRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
@Repository
1414
public interface PostRepository extends JpaRepository<Post, Long> {
1515
List<Post> findByMember(Member member);
16+
Page<Post> findByMember(Member member, Pageable pageable);
1617
Page<Post> findByPoll_Status(PollStatus status, Pageable pageable);
1718
Page<Post> findByPoll_StatusAndPoll_PollIdIn(PollStatus status, List<Long> pollIds, Pageable pageable);
1819
Page<Post> findByPoll_PollIdIn(List<Long> pollIds, Pageable pageable);

backend/src/main/java/com/ai/lawyer/domain/post/service/PostService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ public interface PostService {
3030

3131
// ===== 본인 게시글 관련 =====
3232
PostDto getMyPostById(Long postId, Long requesterMemberId);
33-
List<PostDto> getMyPosts(Long requesterMemberId);
34-
// Page<PostDto> getMyPosts(Pageable pageable, Long requesterMemberId);
33+
Page<PostDto> getMyPosts(Pageable pageable, Long requesterMemberId);
3534

3635
// ===== 페이징 관련 =====
3736
Page<PostDto> getPostsPaged(Pageable pageable, Long memberId);

backend/src/main/java/com/ai/lawyer/domain/post/service/PostServiceImpl.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,13 +165,11 @@ public PostDto getMyPostById(Long postId, Long requesterMemberId) {
165165
return convertToDto(post, requesterMemberId);
166166
}
167167

168-
public List<PostDto> getMyPosts(Long requesterMemberId) {
168+
@Override
169+
public Page<PostDto> getMyPosts(Pageable pageable, Long requesterMemberId) {
169170
Member member = AuthUtil.getMemberOrThrow(requesterMemberId);
170-
List<Post> posts = postRepository.findByMember(member);
171-
return posts.stream()
172-
.sorted(Comparator.comparing(Post::getUpdatedAt, Comparator.nullsLast(Comparator.naturalOrder())).reversed()) // 최신순 정렬
173-
.map(post -> convertToDto(post, requesterMemberId))
174-
.collect(Collectors.toList());
171+
Page<Post> posts = postRepository.findByMember(member, pageable);
172+
return posts.map(post -> convertToDto(post, requesterMemberId));
175173
}
176174

177175
@Override

backend/src/test/java/com/ai/lawyer/domain/post/controller/PostControllerTest.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.springframework.test.context.bean.override.mockito.MockitoBean;
1818
import org.springframework.test.web.servlet.MockMvc;
1919
import jakarta.servlet.http.Cookie;
20+
2021
import static org.mockito.BDDMockito.*;
2122
import com.ai.lawyer.global.jwt.TokenProvider;
2223

@@ -211,14 +212,22 @@ void t9() throws Exception {
211212
}
212213

213214
@Test
214-
@DisplayName("본인 게시글 전체 조회")
215-
void t10() throws Exception {
216-
List<com.ai.lawyer.domain.post.dto.PostDto> posts = java.util.Collections.emptyList();
217-
Mockito.when(postService.getMyPosts(Mockito.anyLong())).thenReturn(posts);
215+
@DisplayName("본인 게시글 전체 페이징 조회")
216+
void t10_paged() throws Exception {
217+
org.springframework.data.domain.Pageable pageable = org.springframework.data.domain.PageRequest.of(0, 10);
218+
java.util.List<com.ai.lawyer.domain.post.dto.PostDto> posts = java.util.List.of(
219+
com.ai.lawyer.domain.post.dto.PostDto.builder().postId(1L).postName("테스트 제목").build()
220+
);
221+
org.springframework.data.domain.PageImpl<com.ai.lawyer.domain.post.dto.PostDto> page = new org.springframework.data.domain.PageImpl<>(posts, pageable, 1);
222+
Mockito.when(postService.getMyPosts(Mockito.any(), Mockito.anyLong())).thenReturn(page);
218223
mockMvc.perform(get("/api/posts/my")
224+
.param("page", "0")
225+
.param("size", "10")
219226
.cookie(new Cookie("accessToken", "valid-access-token")))
220227
.andExpect(status().isOk())
221-
.andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath("$.result").isArray());
228+
.andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath("$.result.content").isArray())
229+
.andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath("$.result.totalElements").value(1))
230+
.andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath("$.result.totalPages").value(1));
222231
}
223232

224233
@Test
@@ -264,4 +273,5 @@ void t13() throws Exception {
264273
.andExpect(status().isOk())
265274
.andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath("$.result.content").isArray());
266275
}
267-
}
276+
}
277+

backend/src/test/java/com/ai/lawyer/domain/post/service/PostServiceTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,16 @@ void t9() {
111111
}
112112

113113
@Test
114-
@DisplayName("내 게시글 목록 조회")
115-
void t10() {
116-
java.util.List expected = java.util.Collections.emptyList();
117-
Mockito.when(postService.getMyPosts(Mockito.anyLong())).thenReturn(expected);
118-
java.util.List result = postService.getMyPosts(1L);
119-
assertThat(result).isEqualTo(expected);
114+
@DisplayName("내 게시글 목록 페이징 조회")
115+
void t10_paged() {
116+
java.util.List<PostDto> postList = java.util.List.of(new PostDto());
117+
org.springframework.data.domain.Pageable pageable = org.springframework.data.domain.PageRequest.of(0, 10);
118+
org.springframework.data.domain.PageImpl<PostDto> page = new org.springframework.data.domain.PageImpl<>(postList, pageable, 1);
119+
Mockito.when(postService.getMyPosts(Mockito.eq(pageable), Mockito.eq(1L))).thenReturn(page);
120+
var result = postService.getMyPosts(pageable, 1L);
121+
assertThat(result.getContent()).hasSize(1);
122+
assertThat(result.getTotalElements()).isEqualTo(1);
123+
assertThat(result.getTotalPages()).isEqualTo(1);
120124
}
121125

122126
@Test

0 commit comments

Comments
 (0)