From b056b33c9553fb765c94bc9f5b279816379ec83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A7=88=EC=BD=94=EB=A0=88?= Date: Sun, 3 Sep 2023 13:18:08 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=EB=8B=B5=EB=B3=80=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=97=86=EC=96=B4=EB=8F=84=20=EC=A7=88=EB=AC=B8?= =?UTF-8?q?=EC=83=81=EC=84=B8=EC=A0=95=EB=B3=B4=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=EA=B0=80=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 답변이 없으면 질문상세정보 api 요청시 에러가 나오는 현상 해결 --- .../java/com/qcard/api/answer/service/AnswerService.java | 8 +++++++- .../com/qcard/api/question/dto/QuestionDetailRes.java | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/q-api/src/main/java/com/qcard/api/answer/service/AnswerService.java b/q-api/src/main/java/com/qcard/api/answer/service/AnswerService.java index c2dbf45..76befc7 100644 --- a/q-api/src/main/java/com/qcard/api/answer/service/AnswerService.java +++ b/q-api/src/main/java/com/qcard/api/answer/service/AnswerService.java @@ -7,8 +7,10 @@ import com.qcard.api.question.dto.QuestionDetailRes; import com.qcard.domains.account.entity.Account; import com.qcard.domains.heart.service.HeartDomainService; +import com.qcard.domains.question.entity.Question; import com.qcard.domains.question.service.AnswerDomainService; import com.qcard.domains.question.entity.Answer; +import com.qcard.domains.question.service.QuestionDomainService; import lombok.RequiredArgsConstructor; import org.springframework.data.util.Pair; import org.springframework.stereotype.Service; @@ -23,6 +25,7 @@ public class AnswerService { private final AnswerDomainService answerDomainService; private final HeartDomainService heartDomainService; + private final QuestionDomainService questionDomainService; public AnswerCreateRes createAnswer(Account account, AnswerReq answerReq) { Answer answer = answerDomainService.createAnswer( @@ -35,10 +38,13 @@ public AnswerCreateRes createAnswer(Account account, AnswerReq answerReq) { public QuestionDetailRes findAnswerByQuestionId(Account account, Long questionId) { List entities = answerDomainService.findAnswerByQuestionId(questionId); + if(entities.isEmpty()) { + Question question = questionDomainService.findQuestionById(questionId); + return new QuestionDetailRes(question, account); + } List answerIds = entities.stream().map(Answer::getId).toList(); Map heartCounts = answerIds.stream().collect(Collectors.toMap(id -> id, heartDomainService::countHeartByAnswerId)); - List heartedAnswerList = heartDomainService.findHeartByAccount(account) .stream().map(heart -> heart.getAnswer().getId()).toList(); diff --git a/q-api/src/main/java/com/qcard/api/question/dto/QuestionDetailRes.java b/q-api/src/main/java/com/qcard/api/question/dto/QuestionDetailRes.java index 0b2a93a..a8ffeff 100644 --- a/q-api/src/main/java/com/qcard/api/question/dto/QuestionDetailRes.java +++ b/q-api/src/main/java/com/qcard/api/question/dto/QuestionDetailRes.java @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; import org.springframework.data.util.Pair; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -29,4 +30,10 @@ public QuestionDetailRes(List answers, Account account, List heart .map(answer -> new AnswerRes(answer, account, hearts, heartCnts.get(answer.getId()))) .collect(Collectors.toList()); } + + public QuestionDetailRes(Question question, Account account) { + this.questionId = question.getId(); + this.title = question.getTitle(); + this.answers = new ArrayList<>(); + } }