1 | package com.example.kvizko.service.impl;
|
---|
2 |
|
---|
3 | import com.example.kvizko.models.Question;
|
---|
4 | import com.example.kvizko.models.Selectionquestion;
|
---|
5 | import com.example.kvizko.repository.QuestionIsPartOfQuizRepository;
|
---|
6 | import com.example.kvizko.repository.QuestionRepository;
|
---|
7 | import com.example.kvizko.repository.SelectionQuestionRepository;
|
---|
8 | import com.example.kvizko.service.QuestionService;
|
---|
9 | import org.springframework.stereotype.Service;
|
---|
10 |
|
---|
11 | import java.util.List;
|
---|
12 | import java.util.stream.Collectors;
|
---|
13 |
|
---|
14 | @Service
|
---|
15 | public class QuestionServiceImpl implements QuestionService {
|
---|
16 |
|
---|
17 | private final QuestionRepository questionRepository;
|
---|
18 | private final SelectionQuestionRepository selectionQuestionRepository;
|
---|
19 | private final QuestionIsPartOfQuizRepository questionIsPartOfQuizRepository;
|
---|
20 |
|
---|
21 | public QuestionServiceImpl(QuestionRepository questionRepository, SelectionQuestionRepository selectionQuestionRepository, QuestionIsPartOfQuizRepository questionIsPartOfQuizRepository) {
|
---|
22 | this.questionRepository = questionRepository;
|
---|
23 | this.selectionQuestionRepository = selectionQuestionRepository;
|
---|
24 | this.questionIsPartOfQuizRepository = questionIsPartOfQuizRepository;
|
---|
25 | }
|
---|
26 |
|
---|
27 |
|
---|
28 | @Override
|
---|
29 | public List<Question> questionsByQuiz(Long id) {
|
---|
30 | List<Long> questionIDs= questionIsPartOfQuizRepository.findAllByQuestionIsPartOfQuizIdClassQuizid(id).
|
---|
31 | stream().map(obj -> obj.getQuestionIsPartOfQuizIdClass().getQuestionid()).toList();
|
---|
32 |
|
---|
33 | List<Long> selection_questionIDs= questionIDs.stream().filter(selectionQuestionRepository::existsById).toList();
|
---|
34 | return questionRepository.findAllById(selection_questionIDs);
|
---|
35 | }
|
---|
36 | }
|
---|