Skip to content

Commit 9b98450

Browse files
Fill issue with entities
1 parent 24320ba commit 9b98450

File tree

2 files changed

+45
-2
lines changed

2 files changed

+45
-2
lines changed

src/main/java/main/controllers/Project/IssueController.java

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,33 @@
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.IssueDao;
77
import main.model.db.dao.project.IssueStatusDao;
8+
import main.model.db.dao.project.UserDao;
89
import main.model.dto.project.IssueDto;
910
import main.model.dto.project.IssueStatusDto;
11+
import main.model.dto.project.ResultResolutionDto;
1012
import main.model.dto.settings.UserDto;
1113

14+
import java.util.ArrayList;
1215
import java.util.List;
16+
import java.util.Objects;
1317

1418
public class IssueController extends BaseController<IssueDto> {
1519
private IssueDao issueDao;
1620
private IssueStatusDao issueStatusDao;
21+
private UserDao userDao;
22+
private ResultResolutionController resultResolutionController;
1723

1824
public IssueController(UserDto user) {
1925
super(user);
2026
issueDao = new IssueDao();
2127
issueStatusDao = new IssueStatusDao();
28+
userDao = new UserDao();
29+
resultResolutionController = new ResultResolutionController(user);
2230
}
2331
@Override
2432
public List<IssueDto> get(IssueDto entity) throws AqualityException {
2533
if (baseUser.isManager() || baseUser.getProjectUser(entity.getProject_id()).isViewer()) {
26-
return issueDao.searchAll(entity);
34+
return fillIssues(issueDao.searchAll(entity));
2735
} else {
2836
throw new AqualityPermissionsException("Account is not allowed to view Issues", baseUser);
2937
}
@@ -44,6 +52,36 @@ public boolean delete(IssueDto entity) throws AqualityException {
4452
}
4553

4654
public List<IssueStatusDto> get(IssueStatusDto status) throws AqualityException {
47-
return issueStatusDao.searchAll(status);
55+
return issueStatusDao.searchAll(status);
56+
}
57+
58+
private List<IssueDto> fillIssues(List<IssueDto> issues) throws AqualityException {
59+
if(issues.isEmpty()) {
60+
return issues;
61+
}
62+
63+
List<UserDto> users = userDao.getAll();
64+
List<IssueStatusDto> issueStatuses = get(new IssueStatusDto());
65+
List<IssueDto> filledIssues = new ArrayList<>();
66+
67+
ResultResolutionDto resultResolution = new ResultResolutionDto();
68+
resultResolution.setProject_id(issues.get(0).getProject_id());
69+
List<ResultResolutionDto> resultResolutions = resultResolutionController.get(resultResolution);
70+
71+
for (IssueDto issue : issues) {
72+
UserDto assignee = users.stream().filter(x -> x.getId().equals(issue.getAssignee_id())).findFirst().orElse(null);
73+
UserDto creator = users.stream().filter(x -> x.getId().equals(issue.getCreator_id())).findFirst().orElse(null);
74+
if(assignee != null) {
75+
issue.setAssignee(assignee.toPublic());
76+
}
77+
if(creator != null) {
78+
issue.setCreator(creator.toPublic());
79+
}
80+
issue.setStatus(issueStatuses.stream().filter(x -> x.getId().equals(issue.getStatus_id())).findFirst().orElse(null));
81+
issue.setResolution(resultResolutions.stream().filter(x -> x.getId().equals(issue.getResolution_id())).findFirst().orElse(null));
82+
filledIssues.add(issue);
83+
}
84+
85+
return filledIssues;
4886
}
4987
}

src/main/java/main/model/dto/project/IssueDto.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import main.annotations.DataBaseName;
77
import main.annotations.DataBaseSearchable;
88
import main.model.dto.BaseDto;
9+
import main.model.dto.settings.UserDto;
910
import main.utils.CustomerDateAndTimeDeserialize;
1011

1112
import java.util.Date;
@@ -20,6 +21,7 @@ public class IssueDto extends BaseDto {
2021
@DataBaseInsert
2122
@DataBaseSearchable
2223
private Integer resolution_id;
24+
private ResultResolutionDto resolution;
2325
@DataBaseName(name="request_title")
2426
@DataBaseInsert
2527
private String title;
@@ -33,13 +35,15 @@ public class IssueDto extends BaseDto {
3335
@DataBaseInsert
3436
@DataBaseSearchable
3537
private Integer assignee_id;
38+
private UserDto assignee;
3639
@DataBaseName(name="request_expression")
3740
@DataBaseInsert
3841
private String expression;
3942
@DataBaseName(name="request_status_id")
4043
@DataBaseInsert
4144
@DataBaseSearchable
4245
private Integer status_id;
46+
private IssueStatusDto status;
4347
@DataBaseName(name="request_label_id")
4448
@DataBaseInsert
4549
@DataBaseSearchable
@@ -51,6 +55,7 @@ public class IssueDto extends BaseDto {
5155
@DataBaseName(name="request_creator_id")
5256
@DataBaseInsert
5357
private Integer creator_id;
58+
private UserDto creator;
5459
@JsonDeserialize(using= CustomerDateAndTimeDeserialize.class)
5560
private Date created;
5661
@DataBaseName(name="request_limit")

0 commit comments

Comments
 (0)