Skip to content

Commit aba2542

Browse files
committed
refactor: 일정 전체조회시 포함된 장소 개수 포함하여 응답
1 parent f21324b commit aba2542

5 files changed

Lines changed: 26 additions & 25 deletions

File tree

src/main/java/com/cliptripbe/feature/schedule/application/ScheduleResponseAssembler.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.cliptripbe.feature.place.dto.response.PlaceListResponse;
44
import com.cliptripbe.feature.schedule.domain.entity.Schedule;
5-
import com.cliptripbe.feature.schedule.dto.response.ScheduleListResponse;
65
import com.cliptripbe.feature.schedule.dto.response.ScheduleResponse;
76
import com.cliptripbe.feature.translate.dto.response.TranslationInfoDto;
87
import com.cliptripbe.feature.user.domain.entity.User;
@@ -43,19 +42,4 @@ public static ScheduleResponse createBookmarkResponseForForeign(
4342
.toList();
4443
return ScheduleResponse.of(scheduleWithPlaces, placeListResponses);
4544
}
46-
47-
public static List<ScheduleListResponse> createScheduleListResponse(List<Schedule> scheduleList) {
48-
return scheduleList
49-
.stream()
50-
.map(ScheduleResponseAssembler::mapScheduleListResponseDto)
51-
.toList();
52-
}
53-
54-
private static ScheduleListResponse mapScheduleListResponseDto(Schedule schedule) {
55-
return ScheduleListResponse.builder()
56-
.scheduleId(schedule.getId())
57-
.scheduleName(schedule.getName())
58-
.description(schedule.getDescription())
59-
.build();
60-
}
6145
}

src/main/java/com/cliptripbe/feature/schedule/application/ScheduleService.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.cliptripbe.feature.schedule.application;
22

33
import static com.cliptripbe.feature.schedule.application.ScheduleResponseAssembler.createBookmarkResponseForForeign;
4-
import static com.cliptripbe.feature.schedule.application.ScheduleResponseAssembler.createScheduleListResponse;
54
import static com.cliptripbe.feature.schedule.application.ScheduleResponseAssembler.createScheduleResponseForKorean;
65

76
import com.cliptripbe.feature.bookmark.domain.service.BookmarkFinder;
@@ -89,8 +88,10 @@ public void updateSchedule(
8988

9089
@Transactional(readOnly = true)
9190
public List<ScheduleListResponse> getUserScheduleList(User user) {
92-
List<Schedule> scheduleList = scheduleRepository.findAllByUser(user);
93-
return createScheduleListResponse(scheduleList);
91+
List<Schedule> scheduleList = scheduleRepository.findAllByUserWithSchedulePlaces(user);
92+
return scheduleList.stream()
93+
.map(ScheduleListResponse::from)
94+
.toList();
9495
}
9596

9697
public void deleteSchedule(User user, Long scheduleId) {
@@ -121,10 +122,12 @@ public ScheduleResponse getScheduleById(
121122
user
122123
);
123124
}
124-
Map<Long, TranslationInfoDto> translationsForPlaces = placeService.getTranslationsForPlaces(places,
125+
Map<Long, TranslationInfoDto> translationsForPlaces = placeService.getTranslationsForPlaces(
126+
places,
125127
user.getLanguage());
126128

127-
return createBookmarkResponseForForeign(scheduleWithPlaces, translationsForPlaces, bookmarkIdsMap, user);
129+
return createBookmarkResponseForForeign(scheduleWithPlaces, translationsForPlaces,
130+
bookmarkIdsMap, user);
128131
}
129132

130133

@@ -148,8 +151,10 @@ public ScheduleResponse createScheduleByVideo(User user, List<Place> placeList)
148151
user
149152
);
150153
}
151-
Map<Long, TranslationInfoDto> translationsForPlaces = placeService.getTranslationsForPlaces(placeList,
154+
Map<Long, TranslationInfoDto> translationsForPlaces = placeService.getTranslationsForPlaces(
155+
placeList,
152156
user.getLanguage());
153-
return createBookmarkResponseForForeign(schedule, translationsForPlaces, bookmarkIdsMap, user);
157+
return createBookmarkResponseForForeign(schedule, translationsForPlaces, bookmarkIdsMap,
158+
user);
154159
}
155160
}

src/main/java/com/cliptripbe/feature/schedule/domain/entity/Schedule.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public void addSchedulePlace(SchedulePlace newSchedulePlace) {
7979
throw new CustomException(EXISTS_PLACE);
8080

8181
}
82-
8382
this.schedulePlaces.add(newSchedulePlace);
8483
}
8584

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
package com.cliptripbe.feature.schedule.dto.response;
22

3+
import com.cliptripbe.feature.schedule.domain.entity.Schedule;
34
import lombok.Builder;
45

56
@Builder
67
public record ScheduleListResponse(
78
Long scheduleId,
89
String scheduleName,
9-
String description
10+
String description,
11+
Integer schedulePlaceCount
1012
) {
1113

14+
public static ScheduleListResponse from(Schedule schedule) {
15+
return ScheduleListResponse.builder()
16+
.scheduleId(schedule.getId())
17+
.scheduleName(schedule.getName())
18+
.description(schedule.getDescription())
19+
.schedulePlaceCount(schedule.getSchedulePlaces().size())
20+
.build();
21+
}
1222
}

src/main/java/com/cliptripbe/feature/schedule/infrastructure/ScheduleRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
public interface ScheduleRepository extends JpaRepository<Schedule, Long> {
1313

14+
@Query("SELECT s FROM Schedule s LEFT JOIN FETCH s.schedulePlaces WHERE s.user = :user")
15+
List<Schedule> findAllByUserWithSchedulePlaces(@Param("user") User user);
16+
1417
List<Schedule> findAllByUser(User user);
1518

1619
@Query("SELECT s FROM Schedule s LEFT JOIN FETCH s.schedulePlaces sp WHERE s.id = :scheduleId")

0 commit comments

Comments
 (0)