Skip to content

Commit 2ef9cc3

Browse files
committed
refactor: 여행 목록 조회 리팩토링 (#105)
* refactor: 특정 멤버의 여행 목록 조회 시 완료되지 않은 여행만 조회하도록 조건 설정 * test: TripQueryServiceTest 여행 목록 조회 단위 테스트 수정
1 parent 25d513c commit 2ef9cc3

5 files changed

Lines changed: 18 additions & 7 deletions

File tree

src/main/java/com/ject/studytrip/trip/application/service/TripQueryService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ public Trip getValidTrip(Long memberId, Long tripId) {
3838
}
3939

4040
public Slice<Trip> getTripsSliceByMemberId(Long memberId, int page, int size) {
41-
return tripQueryRepository.findSliceByMemberId(memberId, PageRequest.of(page, size));
41+
return tripQueryRepository.findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull(
42+
memberId, PageRequest.of(page, size));
4243
}
4344

4445
public TripCount getActiveTripCountsByMemberId(Long memberId) {

src/main/java/com/ject/studytrip/trip/domain/repository/TripQueryRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
import org.springframework.data.domain.Slice;
77

88
public interface TripQueryRepository {
9-
Slice<Trip> findSliceByMemberId(Long memberId, Pageable pageable);
9+
Slice<Trip> findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull(
10+
Long memberId, Pageable pageable);
1011

1112
long countActiveTripsByMemberIdAndCategory(Long memberId, TripCategory category);
1213

src/main/java/com/ject/studytrip/trip/infra/querydsl/TripQueryRepositoryAdapter.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,15 @@ public class TripQueryRepositoryAdapter implements TripQueryRepository {
2323
private final QMember member = QMember.member;
2424

2525
@Override
26-
public Slice<Trip> findSliceByMemberId(Long memberId, Pageable pageable) {
26+
public Slice<Trip> findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull(
27+
Long memberId, Pageable pageable) {
2728
List<Trip> content =
2829
queryFactory
2930
.selectFrom(trip)
30-
.where(trip.member.id.eq(memberId).and(trip.deletedAt.isNull()))
31+
.where(
32+
trip.member.id.eq(memberId),
33+
trip.completed.isFalse(),
34+
trip.deletedAt.isNull())
3135
.offset(pageable.getOffset())
3236
.limit(pageable.getPageSize() + 1)
3337
.fetch();

src/main/java/com/ject/studytrip/trip/presentation/controller/TripController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ public ResponseEntity<StandardResponse> deleteTrip(
8383

8484
@Operation(
8585
summary = "여행 목록 조회",
86-
description = "여행 목록을 조회하는 API 입니다. 무한 스크롤을 위해 슬라이스를 적용하고, D-DAY 정보가 이른 순으로 정렬합니다.")
86+
description =
87+
"여행 목록을 조회하는 API 입니다. 무한 스크롤을 위해 슬라이스를 적용하고, D-DAY 정보가 이른 순으로 정렬합니다. 완료되지 않은 여행 목록만 조회합니다.")
8788
@GetMapping
8889
public ResponseEntity<StandardResponse> loadTrips(
8990
@AuthenticationPrincipal String memberId,

src/test/java/com/ject/studytrip/trip/application/service/TripQueryServiceTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,18 @@ void shouldGetTripByTripIdReturnValidTrip() {
133133
class GetTripsSliceByMemberId {
134134

135135
@Test
136-
@DisplayName("로그인된 사용자의 여행 목록을 DB에서 조회하고 슬라이스 처리해 반환한다")
136+
@DisplayName("로그인된 사용자의 완료되지 않고 삭제되지 않은 여행 목록을 DB에서 조회하고 슬라이스 처리해 반환한다")
137137
void shouldGetTripsReturnSlicePaged() {
138138
// given
139139
Long memberId = member.getId();
140140
List<Trip> trips = List.of(trip);
141141
Pageable pageable = PageRequest.of(DEFAULT_PAGE, DEFAULT_SIZE);
142142
Slice<Trip> results = new SliceImpl<>(trips, pageable, false);
143-
given(tripQueryRepository.findSliceByMemberId(memberId, pageable)).willReturn(results);
143+
given(
144+
tripQueryRepository
145+
.findSliceByMemberIdAndCompletedFalseAndDeletedAtIsNull(
146+
memberId, pageable))
147+
.willReturn(results);
144148

145149
// when
146150
Slice<Trip> sliceTrips =

0 commit comments

Comments
 (0)