diff --git a/application/src/main/java/org/depromeet/spot/application/review/CreateReviewController.java b/application/src/main/java/org/depromeet/spot/application/review/CreateReviewController.java index fd437ae9..6bbe6f5b 100644 --- a/application/src/main/java/org/depromeet/spot/application/review/CreateReviewController.java +++ b/application/src/main/java/org/depromeet/spot/application/review/CreateReviewController.java @@ -40,6 +40,6 @@ public BaseReviewResponse create( @RequestBody @Valid CreateReviewRequest request) { CreateReviewUsecase.CreateReviewResult result = createReviewUsecase.create(blockId, seatNumber, memberId, request.toCommand()); - return BaseReviewResponse.from(result.review()); + return BaseReviewResponse.from(result); } } diff --git a/application/src/main/java/org/depromeet/spot/application/review/dto/response/BaseReviewResponse.java b/application/src/main/java/org/depromeet/spot/application/review/dto/response/BaseReviewResponse.java index 43c54803..d7d9ebd1 100644 --- a/application/src/main/java/org/depromeet/spot/application/review/dto/response/BaseReviewResponse.java +++ b/application/src/main/java/org/depromeet/spot/application/review/dto/response/BaseReviewResponse.java @@ -12,6 +12,7 @@ import org.depromeet.spot.domain.seat.Seat; import org.depromeet.spot.domain.section.Section; import org.depromeet.spot.domain.stadium.Stadium; +import org.depromeet.spot.usecase.port.in.review.CreateReviewUsecase.CreateReviewResult; public record BaseReviewResponse( Long id, @@ -26,6 +27,34 @@ public record BaseReviewResponse( List images, List keywords) { + public static BaseReviewResponse from(CreateReviewResult result) { + Review review = result.review(); + Member member = result.member(); + Seat seat = result.seat(); + return new BaseReviewResponse( + review.getId(), + MemberInfo.from(member), + StadiumResponse.from(review.getStadium()), + SectionResponse.from(review.getSection()), + BlockResponse.from(review.getBlock()), + RowResponse.from(review.getRow()), + SeatResponse.from(seat), + review.getDateTime(), + review.getContent(), + review.getImages().stream().map(ReviewImageResponse::from).toList(), + review.getKeywords().stream() + .map( + reviewKeyword -> { + Keyword keyword = + review.getKeywordById(reviewKeyword.getKeywordId()); + return new KeywordResponse( + reviewKeyword.getId(), + keyword.getContent(), + keyword.getIsPositive()); + }) + .toList()); + } + public static BaseReviewResponse from(Review review) { return new BaseReviewResponse( review.getId(),