Completed
Pull Request — dev (#334)
by
unknown
02:15
created

easytests.api.v1.controllers.IssuesController   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A list(int) 0 16 2
1
package easytests.api.v1.controllers;
2
3
import easytests.api.v1.exceptions.BadRequestException;
4
import easytests.api.v1.exceptions.UnidentifiedModelException;
5
import easytests.api.v1.mappers.IssuesMapper;
6
import easytests.api.v1.models.Issue;
7
import easytests.core.models.IssueModelInterface;
8
import easytests.core.models.SubjectModel;
9
import easytests.core.options.builder.IssuesOptionsBuilder;
10
import easytests.core.services.IssuesService;
11
import easytests.core.services.SubjectsService;
12
import org.springframework.beans.factory.annotation.Autowired;
13
import org.springframework.beans.factory.annotation.Qualifier;
14
import org.springframework.web.bind.annotation.*;
15
import java.util.List;
16
import java.util.stream.Collectors;
17
18
/**
19
 * @author Yarik2308
20
 */
21
@RestController("IssueControllerV1")
22
@SuppressWarnings("checkstyle:MultipleStringLiterals")
23
@RequestMapping("/v1/issues")
24
public class IssuesController {
25
26
    @Autowired
27
    protected IssuesService issuesService;
28
29
    @Autowired
30
    protected SubjectsService subjectsService;
31
32
    @Autowired
33
    protected IssuesOptionsBuilder issuesOptions;
34
35
    @Autowired
36
    @Qualifier("IssuesMapperV1")
37
    private IssuesMapper issuesMapper;
38
39
    @GetMapping("")
40
    public List<Issue> list(@RequestParam int subjectId) throws BadRequestException {
41
        if (subjectsService.find(subjectId) == null)
42
        {
43
            throw new UnidentifiedModelException();
44
        }
45
46
        final SubjectModel subjectModel = new SubjectModel();
47
        subjectModel.setId(subjectId);
48
49
        final List<IssueModelInterface> issuesModels = this.issuesService.findBySubject(subjectModel);
50
51
        return issuesModels
52
                .stream()
53
                .map(model -> this.issuesMapper.map(model, Issue.class))
54
                .collect(Collectors.toList());
55
    }
56
    /**
57
     * create
58
     */
59
    /**
60
     * update
61
     */
62
    /**
63
     * show(issueId)
64
     */
65
    /**
66
     * delete(issueId)
67
     */
68
69
}
70