From f40612b47eee7e952d8cd3297d1fa184f2a6f6c9 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 11 Jan 2024 11:48:21 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B8=ED=84=B0=EB=B7=B0=20API=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/run.sh | 0 .../interview/InterviewDetailResponse.java | 20 +++++++++++++++++-- .../interview/InterviewListResponse.java | 2 +- .../response/interview/InterviewResponse.java | 18 ++++++++++++++--- .../InterviewAnswerResponse.java | 8 ++++++-- .../service/InterviewService.java | 4 ++-- 6 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 script/run.sh diff --git a/script/run.sh b/script/run.sh new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewDetailResponse.java b/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewDetailResponse.java index 8e96622..1e1c3fe 100644 --- a/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewDetailResponse.java +++ b/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewDetailResponse.java @@ -3,16 +3,32 @@ import com.startlion.startlionserver.domain.entity.Interview; import com.startlion.startlionserver.dto.response.interviewanswer.InterviewAnswerResponse; +import io.swagger.v3.oas.annotations.media.Schema; import java.util.List; + +@Schema(description = "인터뷰 상세 페이지 데이터") public record InterviewDetailResponse( + @Schema(description = "인터뷰 ID") Long interviewId, + + @Schema(description = "활동 기수") Long generation, + + @Schema(description = "인터뷰 대상자 지원 파트") String part, + + @Schema(description = "인터뷰 대상자 이름") String name, + + @Schema(description = "인터뷰 대상자 전공") String major, - String oneLineAnswer, + + @Schema(description = "인터뷰 목록 페이지에서 사용하는 섬네일 텍스트") + String thumbnailText, + + @Schema(description = "인터뷰 대상자 image url") String imageUrl, List interviewAnswers ) { @@ -21,7 +37,7 @@ public static InterviewDetailResponse of(Interview interview, List interviews + List interviews ) { } diff --git a/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewResponse.java b/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewResponse.java index 8a3d8ae..10d8988 100644 --- a/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewResponse.java +++ b/src/main/java/com/startlion/startlionserver/dto/response/interview/InterviewResponse.java @@ -2,13 +2,25 @@ import com.startlion.startlionserver.domain.entity.Interview; +import io.swagger.v3.oas.annotations.media.Schema; public record InterviewResponse( + @Schema(description = "인터뷰 ID") Long interviewId, + + @Schema(description = "활동 기수") Long generation, - String name, + + @Schema(description = "인터뷰 대상자 지원 파트") String part, - String OneLineContent, + + @Schema(description = "인터뷰 대상자 이름") + String name, + + @Schema(description = "인터뷰 목록 페이지에서 사용하는 섬네일 텍스트") + String thumbnailText, + + @Schema(description = "인터뷰 대상자 image url") String imageUrl ) { @@ -16,8 +28,8 @@ public static InterviewResponse of(Interview interview) { return new InterviewResponse( interview.getInterviewId(), interview.getGeneration(), + interview.getPart().toString(), interview.getName(), - interview.getPart(), interview.getOneLineContent(), interview.getImageUrl() ); diff --git a/src/main/java/com/startlion/startlionserver/dto/response/interviewanswer/InterviewAnswerResponse.java b/src/main/java/com/startlion/startlionserver/dto/response/interviewanswer/InterviewAnswerResponse.java index 720c63d..478ea5d 100644 --- a/src/main/java/com/startlion/startlionserver/dto/response/interviewanswer/InterviewAnswerResponse.java +++ b/src/main/java/com/startlion/startlionserver/dto/response/interviewanswer/InterviewAnswerResponse.java @@ -4,11 +4,15 @@ import io.swagger.v3.oas.annotations.media.Schema; public record InterviewAnswerResponse( + @Schema(description = "인터뷰 응답 ID") Long interviewAnswerId, @Schema(description = "질문", example = "자기소개를 해주세요.", required = true) String question, - String boldAnswer, - String answer + + @Schema(description = "인터뷰 응답 제목") + String answerTitle, + @Schema(description = "인터뷰 응답 내용") + String answerContent ) { diff --git a/src/main/java/com/startlion/startlionserver/service/InterviewService.java b/src/main/java/com/startlion/startlionserver/service/InterviewService.java index 44720fd..e70ebd1 100644 --- a/src/main/java/com/startlion/startlionserver/service/InterviewService.java +++ b/src/main/java/com/startlion/startlionserver/service/InterviewService.java @@ -9,6 +9,7 @@ import com.startlion.startlionserver.repository.InterviewQueryRepository; import jakarta.persistence.EntityNotFoundException; import lombok.RequiredArgsConstructor; +import lombok.val; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,8 +26,7 @@ public class InterviewService { private final InterviewQueryRepository interviewQueryRepository; public InterviewDetailResponse getInterviewById(Long interviewId) { - Interview interview = interviewJpaRepository.findById(interviewId) - .orElseThrow( () -> new IllegalArgumentException("해당하는 인터뷰가 없습니다.")); + val interview = getById(interviewId); List interviewAnswerResponses = interviewAnswerJpaRepository.findByInterview(interview) .stream()