공hannah부
E-day 프로젝트 - 퀴즈 정답 확인 추가 작업 본문
해야할 일!
- 이제 다 끝난 줄 알았는데 D-1 문제 정답 해설에 img가 있다는 사실을 이제서야 깨달았다....
- 퀴즈 정답을 맞추면 isAnswer, description과 더불어 image_url도 함께 response 되도록 수정해야 한다
1. Quiz 엔티티
- imageUrl Column 추가
@Entity
@Getter
@NoArgsConstructor
public class Quiz {
...
@Column(name = "image_url")
private String imageUrl;
...
}
2. QuizAnswerResponseDto
- Response 목록에 imageUrl 추가
@Getter
@Setter
@NoArgsConstructor
public class QuizAnswerResponseDto {
private boolean isAnswer;
private String quizDescription;
private String imageUrl;
public QuizAnswerResponseDto(boolean isAnswer, String quizDescription) {
public QuizAnswerResponseDto(boolean isAnswer, String quizDescription, String imageUrl) {
this.isAnswer = isAnswer;
this.quizDescription = quizDescription;
this.imageUrl = imageUrl;
}
}
3. QuizService
- 퀴즈 설명 이미지를 가져오는 메소드 추가
public String getDescriptionImg(int d_day){
Quiz quiz = findQuiz(d_day);
return quiz.getImageUrl();
}
4. QuizController
- 정답을 맞췄을 때 imageUrl을 반환하는 코드 추가
@PostMapping
public ResponseEntity<QuizAnswerResponseDto> checkAnswer(
@PathVariable int dDay,
@RequestBody QuizRequestDto quizRequestDto
) {
boolean isCorrect;
String quizDescription = null;
String imageUrl = null;
try {
isCorrect = quizService.checkAnswer(dDay, quizRequestDto.getOptionNumber());
if (isCorrect) {
quizDescription = quizService.getQuizDescription(dDay);
imageUrl = quizService.getDescriptionImg(dDay); //퀴즈 정답을 맞추면 imageUrl변수에 이미지 주소 넣기
}
} catch (IllegalArgumentException e) {
String errorMessage = e.getMessage();
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new QuizAnswerResponseDto(false, errorMessage, null)); //예외 발생시 imageUrl null값 반환
}
return ResponseEntity.ok(new QuizAnswerResponseDto(isCorrect, quizDescription, imageUrl)); //정답유무, 문제 해설, imageUrl 반환
}
이제 진짜진짜 끝이 보인다!!!
처음엔 Eday 플젝 시작할 땐 코드 하나 짜기도 벅찼는데 이제 이정도 간단한 추가는 뚝딱뚝딱 할 수 있게 돼 넘 뿌듯하다ㅎㅎ><
'프로젝트 > EFUB Eday' 카테고리의 다른 글
E-day 프로젝트 - 퀴즈 예외처리 (1) | 2023.07.24 |
---|---|
E-day 프로젝트 - 퀴즈 정답 확인 API(4) (0) | 2023.07.24 |
E-day 프로젝트 - 퀴즈 정답 확인 API(3) (0) | 2023.07.23 |
E-day 프로젝트 - 퀴즈 정답 확인 API(2) (0) | 2023.07.22 |
E-day 프로젝트 - 퀴즈 정답 확인 API(1) (0) | 2023.07.20 |