Refactor Quiz DTO
This commit is contained in:
@@ -2,7 +2,6 @@ package com.mangkyu.employment.interview.app.mail.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.mangkyu.employment.interview.app.member.entity.Member;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequestHolder;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
@@ -85,16 +84,6 @@ public class MailController {
|
||||
// quizRepository.save(quiz(QuizCategory.DATABASE, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR), "퇴근합시다"));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@GetMapping("/temp")
|
||||
public ResponseEntity<AddQuizRequestHolder> sendMail1() throws IOException {
|
||||
final File file = ResourceUtils.getFile("classpath:quiz/quiz-211220.json");
|
||||
final ObjectMapper objectMapper = new ObjectMapper();
|
||||
final AddQuizRequestHolder addQuizRequestHolder = objectMapper.readValue(file, AddQuizRequestHolder.class);
|
||||
|
||||
return ResponseEntity.ok(addQuizRequestHolder);
|
||||
}
|
||||
|
||||
@GetMapping("/temp2")
|
||||
public ResponseEntity<Void> sendMail2() {
|
||||
mailService.sendMail("whalsrb1226@naver.com", quizList2(), true);
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequestHolder;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.*;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
@@ -16,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.validation.Valid;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@@ -29,12 +28,23 @@ class AddQuizController {
|
||||
final File file = ResourceUtils.getFile("classpath:quiz/quiz.json");
|
||||
final AddQuizRequestHolder addQuizRequestHolder = objectMapper.readValue(file, AddQuizRequestHolder.class);
|
||||
|
||||
addQuizRequestHolder.getQuizList().forEach(quizService::addQuiz);
|
||||
addQuizRequestHolder.getQuizList()
|
||||
.forEach(quizService::addQuiz);
|
||||
|
||||
return ResponseEntity.noContent()
|
||||
.build();
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
static class AddQuizRequestHolder {
|
||||
|
||||
private List<AddQuizRequest> quizList;
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/quizzes")
|
||||
public ResponseEntity<Void> addQuiz(@RequestBody @Valid final AddQuizRequest addQuizRequest) {
|
||||
quizService.addQuiz(addQuizRequest);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class AddQuizRequest {
|
||||
|
||||
@NotBlank
|
||||
private String title;
|
||||
|
||||
@NotNull
|
||||
private QuizCategory quizCategory;
|
||||
|
||||
private String resourceId = String.valueOf(UUID.randomUUID());
|
||||
|
||||
@NotEmpty
|
||||
private List<QuizLevel> quizLevel;
|
||||
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.QuizCategoryResponseHolder;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
class GetQuizCategoryController {
|
||||
@@ -14,11 +16,8 @@ class GetQuizCategoryController {
|
||||
private final QuizService quizService;
|
||||
|
||||
@GetMapping("/quizzes/categories")
|
||||
public ResponseEntity<QuizCategoryResponseHolder> getQuizCategoryList() {
|
||||
final QuizCategoryResponseHolder response = QuizCategoryResponseHolder.builder()
|
||||
.categoryList(quizService.getQuizCategoryList())
|
||||
.build();
|
||||
return ResponseEntity.ok(response);
|
||||
public ResponseEntity<Map<String, List<QuizCategoryResponse>>> getQuizCategoryList() {
|
||||
return ResponseEntity.ok(Map.of("categoryList", quizService.getQuizCategoryList()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponseHolder;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.SearchQuizListRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.constants.QuizConstants;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.mangkyu.employment.interview.app.common.pagination.ResponseMetaData;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.constants.QuizConstants;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
@@ -4,7 +4,6 @@ import com.mangkyu.employment.interview.app.answer.controller.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.answer.service.GetAnswerService;
|
||||
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.mangkyu.employment.interview.app.quiz.converter;
|
||||
import com.mangkyu.employment.interview.app.answer.controller.AddAnswerRequest;
|
||||
import com.mangkyu.employment.interview.app.answer.controller.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.controller.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@RequiredArgsConstructor
|
||||
@NoArgsConstructor(force = true)
|
||||
public class AddQuizRequest {
|
||||
|
||||
@NotBlank
|
||||
private final String title;
|
||||
|
||||
@NotNull
|
||||
private final QuizCategory quizCategory;
|
||||
|
||||
private final String resourceId = String.valueOf(UUID.randomUUID());
|
||||
|
||||
@NotEmpty
|
||||
private final List<QuizLevel> quizLevel;
|
||||
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@RequiredArgsConstructor
|
||||
@NoArgsConstructor(force = true)
|
||||
public class AddQuizRequestHolder {
|
||||
|
||||
private final List<AddQuizRequest> quizList;
|
||||
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@RequiredArgsConstructor
|
||||
public class QuizCategoryResponseHolder {
|
||||
|
||||
private final List<QuizCategoryResponse> categoryList;
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.repository;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.QuizSearchCondition;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizSearchCondition;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.repository;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.QuizSearchCondition;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizSearchCondition;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.QQuiz;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
package com.mangkyu.employment.interview.app.quiz.service;
|
||||
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@RequiredArgsConstructor
|
||||
@NoArgsConstructor(force = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class QuizSearchCondition {
|
||||
|
||||
private final String query;
|
||||
private final Set<QuizCategory> categories;
|
||||
private final Set<QuizLevel> levels;
|
||||
private String query;
|
||||
private Set<QuizCategory> categories;
|
||||
private Set<QuizLevel> levels;
|
||||
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.service;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.controller.*;
|
||||
import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode;
|
||||
import com.mangkyu.employment.interview.erros.exception.RestApiException;
|
||||
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.*;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
|
||||
import com.mangkyu.employment.interview.app.solvedquiz.repository.SolvedQuizRepository;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequest;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.QuizCategoryResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponseHolder;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.SearchQuizListRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import com.mangkyu.employment.interview.enums.common.EnumMapperType;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.mangkyu.employment.interview.app.quiz.converter;
|
||||
import com.mangkyu.employment.interview.app.answer.controller.AddAnswerRequest;
|
||||
import com.mangkyu.employment.interview.app.answer.controller.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.controller.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.enums.common.EnumMapperType;
|
||||
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.mangkyu.employment.interview.app.quiz.repository;
|
||||
|
||||
import com.mangkyu.employment.interview.JpaTestConfig;
|
||||
import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.QuizSearchCondition;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizSearchCondition;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.service;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.*;
|
||||
import com.mangkyu.employment.interview.app.quiz.controller.*;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
|
||||
import com.mangkyu.employment.interview.app.solvedquiz.entity.SolvedQuiz;
|
||||
|
||||
@@ -1,36 +1,12 @@
|
||||
package com.mangkyu.employment.interview.erros.handler;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
//import com.mangkyu.employment.interview.app.quiz.controller.GetQuizController;
|
||||
import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode;
|
||||
import com.mangkyu.employment.interview.erros.errorcode.ErrorCode;
|
||||
import com.mangkyu.employment.interview.erros.response.ErrorResponse;
|
||||
import com.mangkyu.employment.interview.erros.exception.RestApiException;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.ResultActions;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
import org.springframework.validation.Validator;
|
||||
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.UUID;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@Disabled
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
|
||||
Reference in New Issue
Block a user