Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

공hannah부

E-day 프로젝트 - 퀴즈 정답 확인 추가 작업 본문

프로젝트/EFUB Eday

E-day 프로젝트 - 퀴즈 정답 확인 추가 작업

Hannah0226 2023. 8. 3. 19:45

해야할 일!

  • 이제 다 끝난 줄 알았는데 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 플젝 시작할 땐 코드 하나 짜기도 벅찼는데 이제 이정도 간단한 추가는 뚝딱뚝딱 할 수 있게 돼 넘 뿌듯하다ㅎㅎ><