Modify getQuizRequest

This commit is contained in:
MangKyu
2022-01-02 22:48:23 +09:00
parent 15b9ec7ce3
commit c2f41bb017
3 changed files with 24 additions and 23 deletions

View File

@@ -9,9 +9,9 @@ public final class QuizConstants {
public static final int MINIMUM_QUIZ_SIZE = 1;
public static final int MAXIMUM_QUIZ_SIZE = 5;
public static final String DEFAULT_PAGE_NUMBER = "0";
public static final int DEFAULT_PAGE_NUMBER = 0;
public static final int MIN_PAGE_NUMBER = 0;
public static final int MIN_PAGE_SIZE = 1;
public static final String DEFAULT_PAGE_SIZE = "10";
public static final int DEFAULT_PAGE_SIZE = 10;
public static final int MAX_PAGE_SIZE = 30;
}

View File

@@ -1,24 +1,19 @@
package com.mangkyu.employment.interview.app.quiz.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter;
import com.mangkyu.employment.interview.app.common.erros.exception.QuizException;
import com.mangkyu.employment.interview.app.quiz.dto.*;
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
import com.mangkyu.employment.interview.enums.value.QuizCategory;
import lombok.RequiredArgsConstructor;
import org.hibernate.validator.constraints.Range;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import static com.mangkyu.employment.interview.app.quiz.constants.QuizConstants.*;
@RestController
@RequiredArgsConstructor
public class QuizController {
@@ -45,18 +40,13 @@ public class QuizController {
}
@GetMapping("/quiz/{id}")
public ResponseEntity<GetQuizResponse> getQuiz(@PathVariable final long id) {
public ResponseEntity<GetQuizResponse> getQuiz(@PathVariable final long id) throws QuizException {
return ResponseEntity.ok(quizService.getQuiz(id));
}
@Valid
@GetMapping("/quizzes")
public ResponseEntity<GetQuizResponseHolder> getQuizList(
@RequestParam(defaultValue = DEFAULT_PAGE_SIZE) @Range(min = MIN_PAGE_SIZE, max = MAX_PAGE_SIZE) int size,
@RequestParam(defaultValue = DEFAULT_PAGE_NUMBER) @Range(min = MIN_PAGE_NUMBER) int page,
@NotNull final QuizCategory category) {
final GetQuizResponseHolder response = quizService.getQuizList(QuizDtoConverter.convert(size, page, category));
public ResponseEntity<GetQuizResponseHolder> getQuizList(@Valid final GetQuizRequest getQuizRequest) {
final GetQuizResponseHolder response = quizService.getQuizList(getQuizRequest);
return ResponseEntity.ok(response);
}

View File

@@ -1,17 +1,28 @@
package com.mangkyu.employment.interview.app.quiz.dto;
import com.mangkyu.employment.interview.app.quiz.constants.QuizConstants;
import com.mangkyu.employment.interview.enums.value.QuizCategory;
import lombok.Builder;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.*;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotNull;
@Setter
@Getter
@Builder
@RequiredArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
public class GetQuizRequest {
private final int size;
private final int page;
private final QuizCategory category;
@NotNull
private QuizCategory category;
@Builder.Default
@Range(min = QuizConstants.MIN_PAGE_SIZE, max = QuizConstants.MAX_PAGE_SIZE)
private int size = QuizConstants.DEFAULT_PAGE_SIZE;
@Builder.Default
@Range(min = QuizConstants.MIN_PAGE_NUMBER)
private int page = QuizConstants.DEFAULT_PAGE_NUMBER;
}