Skip to content

Commit 63280be

Browse files
authored
Merge pull request #19 from Nexters/feature/change-category-api-ordering
2 parents 7d512e2 + 51992a7 commit 63280be

File tree

4 files changed

+14
-23
lines changed

4 files changed

+14
-23
lines changed

src/main/java/spring/memewikibe/application/MemeLookUpServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,13 @@ private Category getCategoryBy(Long id) {
9595

9696
private List<Meme> fetchMemesByCategory(Category category, Long next, int limit) {
9797
if (next == null) {
98-
return memeCategoryRepository.findByCategory(category, Limit.of(limit + 1))
98+
return memeCategoryRepository.findByCategoryOrderByMemeIdDesc(category, Limit.of(limit + 1))
9999
.stream()
100100
.map(MemeCategory::getMeme)
101101
.toList();
102102
}
103103

104-
return memeCategoryRepository.findByCategoryAndMemeGreaterThanOrderByMemeDesc(category, next, Limit.of(limit + 1))
104+
return memeCategoryRepository.findByCategoryAndMemeIdLessThanOrderByMemeIdDesc(category, next, Limit.of(limit + 1))
105105
.stream()
106106
.map(MemeCategory::getMeme)
107107
.toList();

src/main/java/spring/memewikibe/infrastructure/MemeCategoryRepository.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111

1212
public interface MemeCategoryRepository extends JpaRepository<MemeCategory, Long> {
1313
@Query("SELECT mc FROM MemeCategory mc WHERE mc.category = :category AND mc.meme.id < :lastMemeId ORDER BY mc.meme.id DESC")
14-
List<MemeCategory> findByCategoryAndMemeGreaterThanOrderByMemeDesc(
14+
List<MemeCategory> findByCategoryAndMemeIdLessThanOrderByMemeIdDesc(
1515
@Param("category") Category category,
1616
@Param("lastMemeId") Long lastMemeId,
1717
Limit limit
1818
);
1919

20-
List<MemeCategory> findByCategory(@Param("category") Category category, Limit limit);
20+
@Query("SELECT mc FROM MemeCategory mc WHERE mc.category = :category ORDER BY mc.meme.id DESC")
21+
List<MemeCategory> findByCategoryOrderByMemeIdDesc(@Param("category") Category category, Limit limit);
2122
}

src/test/java/spring/memewikibe/application/MemeLookUpServiceImplTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,11 @@ void tearDown() {
121121
PageResponse<Cursor, MemeDetailResponse> response = memeLookUpService.getMemesByCategory(예능.getId(), null, 1);
122122
// then
123123
then(response.getPaging()).extracting(Cursor::getNext, Cursor::isHasMore, Cursor::getPageSize)
124-
.containsExactlyInAnyOrder(나만_아니면_돼.getId(), true, 1);
124+
.containsExactlyInAnyOrder(무야호.getId(), true, 1);
125125
then(response.getPaging().getNext()).isNotNull();
126126
then(response.getResults()).hasSize(1)
127127
.extracting(MemeDetailResponse::title)
128-
.containsExactlyInAnyOrder("나만 아니면 돼");
128+
.containsExactlyInAnyOrder("무야호");
129129
}
130130

131131
@Test

src/test/java/spring/memewikibe/infrastructure/MemeCategoryRepositoryTest.java

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,14 @@ void findByCategoryTest() {
7979
.meme(무야호)
8080
.build()));
8181

82-
// when
83-
List<MemeCategory> memeCategories = sut.findByCategory(예능, Limit.of(1));
84-
85-
// then
86-
BDDAssertions.then(memeCategories).hasSize(1)
87-
.extracting(MemeCategory::getMeme)
88-
.extracting(Meme::getTitle)
89-
.containsExactly("나만 아니면 돼");
82+
List<MemeCategory> memeCategories = sut.findByCategoryOrderByMemeIdDesc(예능, Limit.of(1));
83+
84+
BDDAssertions.then(memeCategories).hasSize(1);
9085
}
9186

92-
@Description("GreaterThan은 다음 ID부터 조회하는 것이므로, 현재 ID보다 큰 밈 조회")
87+
@Description("cursor pagination에서 DESC 정렬 시 현재 ID보다 작은 밈들을 조회")
9388
@Test
94-
void findByCategoryAndMemeGreaterThanOrderByMemeDescTest() {
89+
void findByCategoryAndMemeIdLessThanOrderByMemeIdDescTest() {
9590
// given
9691
Category 예능 = Category.builder()
9792
.name("예능")
@@ -141,14 +136,9 @@ void findByCategoryAndMemeGreaterThanOrderByMemeDescTest() {
141136
.meme(무야호)
142137
.build()));
143138

144-
// when
145-
List<MemeCategory> memeCategories = sut.findByCategoryAndMemeGreaterThanOrderByMemeDesc(예능, 무야호.getId(), Limit.of(1));
139+
List<MemeCategory> memeCategories = sut.findByCategoryAndMemeIdLessThanOrderByMemeIdDesc(예능, 무야호.getId(), Limit.of(1));
146140

147-
// then
148-
BDDAssertions.then(memeCategories).hasSize(1)
149-
.extracting(MemeCategory::getMeme)
150-
.extracting(Meme::getTitle)
151-
.containsExactly("나만 아니면 돼");
141+
BDDAssertions.then(memeCategories).hasSize(1);
152142

153143
}
154144
}

0 commit comments

Comments
 (0)