From 26b30fab1367c37180a0d1ff6cba687e6b175a6f Mon Sep 17 00:00:00 2001 From: yunji118 Date: Fri, 12 Jan 2024 19:33:43 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20quiz=20=EA=B5=AC=ED=98=84=20#32?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quiz/Controller/QuizController.java | 21 +++++++++++ .../ALGo/ALGo_server/quiz/Dto/QuizDto.java | 15 ++++++++ .../ALGo_server/quiz/Dto/QuizResponseDto.java | 14 ++++++++ .../ALGo_server/quiz/Service/QuizService.java | 36 +++++++++++++++++++ .../repository/QuizRepository.java | 4 +-- 5 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/ALGo/ALGo_server/quiz/Controller/QuizController.java create mode 100644 src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizDto.java create mode 100644 src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizResponseDto.java create mode 100644 src/main/java/com/ALGo/ALGo_server/quiz/Service/QuizService.java diff --git a/src/main/java/com/ALGo/ALGo_server/quiz/Controller/QuizController.java b/src/main/java/com/ALGo/ALGo_server/quiz/Controller/QuizController.java new file mode 100644 index 0000000..729abb5 --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/quiz/Controller/QuizController.java @@ -0,0 +1,21 @@ +package com.ALGo.ALGo_server.quiz.Controller; + +import com.ALGo.ALGo_server.quiz.Dto.QuizResponseDto; +import com.ALGo.ALGo_server.quiz.Service.QuizService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/quiz") +@RequiredArgsConstructor +public class QuizController { + private final QuizService quizService; + + @GetMapping() + public QuizResponseDto getQuiz(){ + return quizService.getQuiz(); + } +} diff --git a/src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizDto.java b/src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizDto.java new file mode 100644 index 0000000..b60158b --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizDto.java @@ -0,0 +1,15 @@ +package com.ALGo.ALGo_server.quiz.Dto; + +import com.ALGo.ALGo_server.entity.Quiz; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +public class QuizDto { + private Long id; + + public QuizDto(Quiz quiz){ + this.id = quiz.getQuiz_id(); + } +} diff --git a/src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizResponseDto.java b/src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizResponseDto.java new file mode 100644 index 0000000..1fffd67 --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/quiz/Dto/QuizResponseDto.java @@ -0,0 +1,14 @@ +package com.ALGo.ALGo_server.quiz.Dto; + +import lombok.Getter; + +import java.util.List; + +@Getter +public class QuizResponseDto { + List quizList; + + public QuizResponseDto(List quizList){ + this.quizList = quizList; + } +} diff --git a/src/main/java/com/ALGo/ALGo_server/quiz/Service/QuizService.java b/src/main/java/com/ALGo/ALGo_server/quiz/Service/QuizService.java new file mode 100644 index 0000000..460e4a6 --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/quiz/Service/QuizService.java @@ -0,0 +1,36 @@ +package com.ALGo.ALGo_server.quiz.Service; + + +import com.ALGo.ALGo_server.entity.Quiz; +import com.ALGo.ALGo_server.quiz.Dto.QuizDto; +import com.ALGo.ALGo_server.quiz.Dto.QuizResponseDto; +import com.ALGo.ALGo_server.repository.QuizRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +@Service +@RequiredArgsConstructor +public class QuizService { + private final QuizRepository quizRepository; + + @Transactional(readOnly = true) + public QuizResponseDto getQuiz(){ + Random random = new Random(); + + List quizDtoList = new ArrayList<>(); + for(int i=0;i<4;i++){ + Long randomNum = Long.valueOf(random.nextInt(16) + 1); + Quiz q = quizRepository.findById(randomNum).get(); + QuizDto quizDto = new QuizDto(q); + quizDtoList.add(quizDto); + } + QuizResponseDto responseDto = new QuizResponseDto(quizDtoList); + + return responseDto; + } +} diff --git a/src/main/java/com/ALGo/ALGo_server/repository/QuizRepository.java b/src/main/java/com/ALGo/ALGo_server/repository/QuizRepository.java index 75d6f7b..2fdc03b 100644 --- a/src/main/java/com/ALGo/ALGo_server/repository/QuizRepository.java +++ b/src/main/java/com/ALGo/ALGo_server/repository/QuizRepository.java @@ -2,9 +2,7 @@ import com.ALGo.ALGo_server.entity.Quiz; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; public interface QuizRepository extends JpaRepository { - - Quiz findByQuiz_id(Long quiz_id); - }