Skip to content

Commit

Permalink
feat: 행사 단건 조회 시 섬네일 이미지와 나머지 이미지들을 반환하도록 DTO 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
amaran-th committed Sep 27, 2023
1 parent 61ad1bf commit 6920902
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumMap;
import java.util.List;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -66,8 +67,23 @@ public EventDetailResponse findEvent(final Long id, final LocalDate today) {
.sorted(comparing(Image::getOrder))
.map(Image::getName)
.collect(toList());
final String thumbnailImageUrl = extractThumbnailImage(imageUrls);
final List<String> informationImageUrls = extractInformationImages(imageUrls);
return EventDetailResponse.from(event, today, thumbnailImageUrl, informationImageUrls);
}

return EventDetailResponse.from(event, today, imageUrls);
private String extractThumbnailImage(final List<String> imageUrls) {
if (imageUrls.isEmpty()) {
return null;
}
return imageUrls.get(0);
}

private List<String> extractInformationImages(final List<String> imageUrls) {
if (imageUrls.size() <= 1) {
return Collections.emptyList();
}
return imageUrls.subList(1, imageUrls.size());
}

@Transactional(readOnly = true)
Expand Down Expand Up @@ -193,8 +209,9 @@ public EventDetailResponse addEvent(final EventDetailRequest request,
.collect(toList());

eventPublisher.publish(event);

return EventDetailResponse.from(event, today, imageUrls);
final String thumbnailImageUrl = extractThumbnailImage(imageUrls);
final List<String> informationImageUrls = extractInformationImages(imageUrls);
return EventDetailResponse.from(event, today, thumbnailImageUrl, informationImageUrls);
}

public EventDetailResponse updateEvent(final Long eventId, final EventDetailRequest request,
Expand Down Expand Up @@ -223,8 +240,9 @@ public EventDetailResponse updateEvent(final Long eventId, final EventDetailRequ
.sorted(comparing(Image::getOrder))
.map(Image::getName)
.collect(toList());

return EventDetailResponse.from(updatedEvent, today, imageUrls);
final String thumbnailImageUrl = extractThumbnailImage(imageUrls);
final List<String> informationImageUrls = extractInformationImages(imageUrls);
return EventDetailResponse.from(updatedEvent, today, thumbnailImageUrl, informationImageUrls);
}

public void deleteEvent(final Long eventId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class EventDetailResponse {
public static EventDetailResponse from(
final Event event,
final LocalDate today,
final String imageUrl,
final List<String> imageUrls
) {
final List<String> tagNames = event.getTags().stream()
Expand All @@ -63,7 +64,7 @@ public static EventDetailResponse from(
event.getEventPeriod().calculateEventStatus(today).name(),
event.getEventPeriod().calculateEventApplyStatus(today).name(),
tagNames,
event.getImageUrl(),
imageUrl,
event.getEventPeriod().calculateRemainingDays(today),
event.getEventPeriod().calculateApplyRemainingDays(today),
event.getType().toString(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,11 @@ void success() {
new Image("imageUrl2", ImageType.EVENT, event.getId(), 0, LocalDateTime.now())
);

final List<String> imageUrls = List.of("imageUrl2", "imageUrl1");
final String imageUrl = "imageUrl2";
final List<String> imageUrls = List.of("imageUrl1");

final EventDetailResponse expected = EventDetailResponse.from(event, 날짜_8_10일(), imageUrls);
final EventDetailResponse expected = EventDetailResponse.from(event, 날짜_8_10일(), imageUrl,
imageUrls);

//when
final EventDetailResponse actual = eventService.findEvent(event.getId(), 날짜_8_10일());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ void createEventDetailResponseTest() {
//given
final Event 구름톤 = EventFixture.구름톤();
final LocalDate 날짜 = LocalDate.of(2023, 7, 1);
final String imageUrl = "thumbnail";
final List<String> imageUrls = List.of("imageUrl1", "imageUrl2");

final EventDetailResponse expected = new EventDetailResponse(
Expand All @@ -34,7 +35,7 @@ void createEventDetailResponseTest() {
EventStatus.UPCOMING.name(),
EventStatus.UPCOMING.name(),
Collections.emptyList(),
구름톤.getImageUrl(),
imageUrl,
2, 2,
구름톤.getType().toString(),
imageUrls,
Expand All @@ -43,7 +44,7 @@ void createEventDetailResponseTest() {
);

//when
final EventDetailResponse actual = EventDetailResponse.from(구름톤, 날짜, imageUrls);
final EventDetailResponse actual = EventDetailResponse.from(구름톤, 날짜, imageUrl, imageUrls);

//then
assertThat(actual)
Expand Down

0 comments on commit 6920902

Please sign in to comment.