Passed
Pull Request — dev (#364)
by
unknown
04:16
created

easytests.api.v1.controllers.QuizzesController   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 3
c 2
b 0
f 1
dl 0
loc 37
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A list(Integer) 0 19 3
1
package easytests.api.v1.controllers;
2
3
import easytests.api.v1.exceptions.ForbiddenException;
4
import easytests.api.v1.exceptions.NotFoundException;
5
import easytests.api.v1.mappers.QuizzesMapper;
6
import easytests.api.v1.models.Quiz;
7
import easytests.core.models.IssueModelInterface;
8
import easytests.core.models.QuizModelInterface;
9
import easytests.core.models.empty.IssueModelEmpty;
10
import easytests.core.options.builder.QuizzesOptionsBuilderInterface;
11
import easytests.core.services.IssuesServiceInterface;
12
import easytests.core.services.QuizzesServiceInterface;
13
import org.springframework.beans.factory.annotation.Autowired;
14
import org.springframework.beans.factory.annotation.Qualifier;
15
import org.springframework.web.bind.annotation.GetMapping;
16
import org.springframework.web.bind.annotation.RequestMapping;
17
import org.springframework.web.bind.annotation.RequestParam;
18
import org.springframework.web.bind.annotation.RestController;
19
20
import java.util.List;
21
import java.util.stream.Collectors;
22
23
24
/**
25
 * @author miron97
26
 */
27
@RestController("QuizzesControllerV1")
28
@SuppressWarnings("checkstyle:MultipleStringLiterals")
29
@RequestMapping("/v1/quizzes")
30
public class QuizzesController extends AbstractController{
31
32
    @Autowired
33
    protected QuizzesServiceInterface quizzesService;
34
35
    @Autowired
36
    private QuizzesOptionsBuilderInterface quizzesOptions;
37
38
    @Autowired
39
    private IssuesServiceInterface issuesService;
40
41
    @Autowired
42
    @Qualifier("QuizzesMapperV1")
43
    private QuizzesMapper quizzesMapper;
44
    
45
    @GetMapping("")
46
    public List<Quiz> list(@RequestParam(name = "issueId", required = true) Integer issueId)
47
            throws NotFoundException, ForbiddenException {
48
        final IssueModelInterface issueModel = this.issuesService.find(issueId);
49
50
        if (issueModel == null) {
51
            throw new NotFoundException();
52
        }
53
        if (!this.acl.hasAccess(issueModel)) {
54
            throw new ForbiddenException();
55
        }
56
57
        final List<QuizModelInterface> quizModels = this.quizzesService
58
                .findByIssue(new IssueModelEmpty(issueId));
59
60
        return quizModels
61
                .stream()
62
                .map(model -> this.quizzesMapper.map(model, Quiz.class))
63
                .collect(Collectors.toList());
64
    }
65
    /**
66
     * show(quizId)
67
     */
68
}
69