diff --git a/backend/emm-sale/src/main/java/com/emmsale/event/application/dto/EventDetailResponse.java b/backend/emm-sale/src/main/java/com/emmsale/event/application/dto/EventDetailResponse.java index 37c61e10b..8b062af9b 100644 --- a/backend/emm-sale/src/main/java/com/emmsale/event/application/dto/EventDetailResponse.java +++ b/backend/emm-sale/src/main/java/com/emmsale/event/application/dto/EventDetailResponse.java @@ -1,8 +1,13 @@ package com.emmsale.event.application.dto; +import static java.util.stream.Collectors.toUnmodifiableList; + import com.emmsale.event.domain.Event; +import com.emmsale.event.domain.EventTag; +import com.emmsale.tag.domain.Tag; import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDateTime; +import java.util.List; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -23,8 +28,14 @@ public class EventDetailResponse { private final LocalDateTime endDate; private final String location; private final String status; + private final List tags; public static EventDetailResponse from(final Event event) { + final List tagNames = event.getTags().stream() + .map(EventTag::getTag) + .map(Tag::getName) + .collect(toUnmodifiableList()); + return new EventDetailResponse( event.getId(), event.getName(), @@ -32,7 +43,8 @@ public static EventDetailResponse from(final Event event) { event.getStartDate(), event.getEndDate(), event.getLocation(), - calculateStatus(event.getStartDate(), event.getEndDate()) + calculateStatus(event.getStartDate(), event.getEndDate()), + tagNames ); } diff --git a/backend/emm-sale/src/main/java/com/emmsale/event/domain/Event.java b/backend/emm-sale/src/main/java/com/emmsale/event/domain/Event.java index 62dbb2270..206a39098 100644 --- a/backend/emm-sale/src/main/java/com/emmsale/event/domain/Event.java +++ b/backend/emm-sale/src/main/java/com/emmsale/event/domain/Event.java @@ -6,6 +6,7 @@ import com.emmsale.comment.domain.Comment; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; @@ -35,7 +36,7 @@ public class Event extends BaseEntity { @Column(nullable = false) private String informationUrl; @OneToMany(mappedBy = "event") - private List tags; + private List tags = new ArrayList<>(); @OneToMany(mappedBy = "event") private List comments; diff --git a/backend/emm-sale/src/test/java/com/emmsale/event/api/EventApiTest.java b/backend/emm-sale/src/test/java/com/emmsale/event/api/EventApiTest.java index 8a451494a..c5197d5e3 100644 --- a/backend/emm-sale/src/test/java/com/emmsale/event/api/EventApiTest.java +++ b/backend/emm-sale/src/test/java/com/emmsale/event/api/EventApiTest.java @@ -47,7 +47,8 @@ void findEvent() throws Exception { LocalDateTime.of(2023, 8, 15, 12, 0), LocalDateTime.of(2023, 8, 15, 12, 0), "코엑스", - "예정" + "예정", + List.of("코틀린", "백엔드", "안드로이드") ); final ResponseFieldsSnippet responseFields = responseFields( @@ -57,7 +58,8 @@ void findEvent() throws Exception { fieldWithPath("startDate").type(JsonFieldType.STRING).description("시작일자"), fieldWithPath("endDate").type(JsonFieldType.STRING).description("종료일자"), fieldWithPath("location").type(JsonFieldType.STRING).description("장소"), - fieldWithPath("status").type(JsonFieldType.STRING).description("진행상태") + fieldWithPath("status").type(JsonFieldType.STRING).description("진행상태"), + fieldWithPath("tags[]").type(JsonFieldType.ARRAY).description("태그들") ); when(eventService.findEvent(eventId)).thenReturn(eventDetailResponse); @@ -116,4 +118,4 @@ void findEvents() throws Exception { .andDo(document("find-events", requestParameters, responseFields)); } -} \ No newline at end of file +}