Skip to content

Commit 6112e72

Browse files
Merge pull request #28 from aquality-automation/develop
0.3.3
2 parents 5a24d66 + f985c49 commit 6112e72

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1651
-91
lines changed

CHANGELOG.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
# CHANGELOG
22

3-
## 0.3.2 (unreleased)
3+
## 0.3.3 (unreleased)
4+
5+
Features:
6+
- Rename Import Token to API Token -> [View Issue](https://github.com/aquality-automation/aquality-tracking-ui/issues/23)
7+
- Steps Feature -> [View Issue](https://github.com/aquality-automation/aquality-tracking-ui/issues/46)
8+
- Regex Search by Errors for Import -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/17)
9+
10+
Bugfixes:
11+
- Local Manager can see Local Permissions page -> [View Issue](https://github.com/aquality-automation/aquality-tracking-ui/issues/22)
12+
13+
## 0.3.2 (2019-09-10)
414

515
Features:
616

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>unifi_reporting_api</groupId>
77
<artifactId>api</artifactId>
88
<packaging>war</packaging>
9-
<version>0.3.2</version>
9+
<version>0.3.3</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/main/Session.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ public Session(UserDto user) throws AqualityException {
3838
}
3939

4040
@Deprecated
41-
public Session(String importToken, int projectId) throws AqualityException {
41+
public Session(String apiToken, int projectId) throws AqualityException {
4242
user = new UserDto();
4343
controllerFactory = new ControllerFactory(user);
44-
if(controllerFactory.getHandler(new ImportTokenDto()).isTokenValid(importToken, projectId)){
44+
if(controllerFactory.getHandler(new APITokenDto()).isTokenValid(apiToken, projectId)){
4545
ProjectUserDto projectUser = new ProjectUserDto();
4646
projectUser.setProject_id(projectId);
4747
projectUser.setEngineer(1);
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package main.controllers.Administration;
2+
3+
import main.controllers.BaseController;
4+
import main.exceptions.AqualityException;
5+
import main.model.db.dao.project.StepTypeDao;
6+
import main.model.dto.StepTypeDto;
7+
import main.model.dto.UserDto;
8+
9+
import java.util.List;
10+
11+
public class StepTypeController extends BaseController<StepTypeDto> {
12+
private StepTypeDao stepTypeDao;
13+
14+
public StepTypeController(UserDto user) {
15+
super(user);
16+
stepTypeDao = new StepTypeDao();
17+
}
18+
19+
@Override
20+
public List<StepTypeDto> get(StepTypeDto entity) throws AqualityException {
21+
return stepTypeDao.searchAll(entity);
22+
}
23+
24+
@Override
25+
public StepTypeDto create(StepTypeDto entity) throws AqualityException {
26+
return stepTypeDao.create(entity);
27+
}
28+
29+
@Override
30+
public boolean delete(StepTypeDto entity) throws AqualityException {
31+
return stepTypeDao.delete(entity);
32+
}
33+
}

src/main/java/main/controllers/ControllerFactory.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main.controllers;
22

33
import main.controllers.Administration.EmailSettingsController;
4+
import main.controllers.Administration.StepTypeController;
45
import main.controllers.Administration.UserController;
56
import main.controllers.Project.*;
67
import main.model.dto.*;
@@ -24,8 +25,8 @@ public FinalResultController getHandler(FinalResultDto entity) {
2425
public ImportController getHandler(ImportDto entity) {
2526
return new ImportController(user);
2627
}
27-
public ImportTokenController getHandler(ImportTokenDto entity) {
28-
return new ImportTokenController(user);
28+
public APITokenController getHandler(APITokenDto entity) {
29+
return new APITokenController(user);
2930
}
3031
public MilestoneController getHandler(MilestoneDto entity) {
3132
return new MilestoneController(user);
@@ -60,4 +61,13 @@ public UserController getHandler(UserDto entity) {
6061
public EmailSettingsController getHandler(EmailSettingsDto entity) {
6162
return new EmailSettingsController(user);
6263
}
64+
public StepController getHandler(StepDto entity) {
65+
return new StepController(user);
66+
}
67+
public StepResultController getHandler(StepResultDto entity) {
68+
return new StepResultController(user);
69+
}
70+
public StepTypeController getHandler(StepTypeDto entity) {
71+
return new StepTypeController(user);
72+
}
6373
}

src/main/java/main/controllers/Project/ImportTokenController.java renamed to src/main/java/main/controllers/Project/APITokenController.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,49 @@
33
import main.controllers.BaseController;
44
import main.exceptions.AqualityException;
55
import main.exceptions.AqualityPermissionsException;
6-
import main.model.db.dao.project.ImportTokenDao;
7-
import main.model.dto.ImportTokenDto;
6+
import main.model.db.dao.project.APITokenDao;
7+
import main.model.dto.APITokenDto;
88
import main.model.dto.UserDto;
99
import org.apache.commons.codec.digest.DigestUtils;
1010
import org.apache.poi.util.NotImplemented;
1111

1212
import java.util.List;
1313
import java.util.Objects;
1414

15-
public class ImportTokenController extends BaseController<ImportTokenDto> {
16-
private ImportTokenDao importTokenDao;
17-
public ImportTokenController(UserDto user) {
15+
public class APITokenController extends BaseController<APITokenDto> {
16+
private APITokenDao apiTokenDao;
17+
public APITokenController(UserDto user) {
1818
super(user);
19-
importTokenDao = new ImportTokenDao();
19+
apiTokenDao = new APITokenDao();
2020
}
2121

2222
@Override
23-
public List<ImportTokenDto> get(ImportTokenDto entity) throws AqualityException {
23+
public List<APITokenDto> get(APITokenDto entity) throws AqualityException {
2424
throw new UnsupportedOperationException();
2525
}
2626

2727
@Override
28-
public ImportTokenDto create(ImportTokenDto template) throws AqualityException {
28+
public APITokenDto create(APITokenDto template) throws AqualityException {
2929
if(baseUser.isAdmin() || baseUser.isManager() || baseUser.getProjectUser(template.getId()).isManager() || baseUser.getProjectUser(template.getId()).isAdmin()){
30-
return importTokenDao.create(template);
30+
return apiTokenDao.create(template);
3131
}else{
32-
throw new AqualityPermissionsException("Account is not allowed to create Import Token", baseUser);
32+
throw new AqualityPermissionsException("Account is not allowed to create API Token", baseUser);
3333
}
3434
}
3535

3636
@Override @NotImplemented
37-
public boolean delete(ImportTokenDto entity) throws AqualityException {
37+
public boolean delete(APITokenDto entity) throws AqualityException {
3838
throw new UnsupportedOperationException();
3939
}
4040

4141
public boolean isTokenValid(String token, Integer projectId) throws AqualityException {
4242
String actualHash = DigestUtils.md5Hex(token + "advbc1671-nlksdui-ff");
43-
ImportTokenDto tokenDTO = new ImportTokenDto();
43+
APITokenDto tokenDTO = new APITokenDto();
4444
tokenDTO.setId(projectId);
45-
List<ImportTokenDto> importTokens = importTokenDao.searchAll(tokenDTO);
45+
List<APITokenDto> apiTokens = apiTokenDao.searchAll(tokenDTO);
4646

47-
if(importTokens.size() > 0){
48-
String expectedHash = (importTokens.get(0)).getImport_token();
47+
if(apiTokens.size() > 0){
48+
String expectedHash = (apiTokens.get(0)).getApi_token();
4949
return Objects.equals(actualHash, expectedHash);
5050
}
5151

src/main/java/main/controllers/Project/ProjectController.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public ProjectController(UserDto user) {
2121

2222
@Override
2323
public ProjectDto create(ProjectDto template) throws AqualityException {
24-
if(baseUser.isAdmin()){
24+
if(baseUser.isAdmin() || allowUpdateProject(template)){
2525
ProjectDto project = projectDao.create(template);
2626
updateProjectPermissions(project);
2727
return project;
@@ -50,12 +50,32 @@ public boolean delete(ProjectDto template) throws AqualityException {
5050
}
5151
}
5252

53+
public boolean isStepsEnabled(Integer projectId) throws AqualityException {
54+
ProjectDto project = new ProjectDto();
55+
project.setId(projectId);
56+
List<ProjectDto> projects = get(project);
57+
58+
if(projects.size() < 1) {
59+
throw new AqualityException("Project with id %s does not exists!", projectId);
60+
}
61+
62+
return projects.get(0).getSteps() == 1;
63+
}
64+
5365
private void updateProjectPermissions(ProjectDto entity) throws AqualityException {
5466
if(entity.getCustomer() != null && entity.getCustomer().getAccounting() == 1 && entity.getId() != 0){
5567
updatePermissions(entity.getCustomer().getId(), entity.getId());
5668
}
5769
}
5870

71+
private boolean allowUpdateProject(ProjectDto template) {
72+
if(template.getId() != null) {
73+
ProjectUserDto projectUser = baseUser.getProjectUser(template.getId());
74+
return baseUser.isManager() || projectUser.isManager() || projectUser.isAdmin();
75+
}
76+
return false;
77+
}
78+
5979
//TODO create
6080
private void updatePermissions(Integer customer_id, Integer project_id) throws AqualityException {
6181
}

src/main/java/main/controllers/Project/ProjectUserController.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public ProjectUserController(UserDto user) {
2222

2323
@Override
2424
public ProjectUserDto create(ProjectUserDto template) throws AqualityException {
25-
if(baseUser.isAdmin() || baseUser.getProjectUser(template.getProject_id()).isAdmin()){
25+
if(isEditorSession(template)){
2626
return projectUserDao.create(template);
2727
}else{
2828
throw new AqualityPermissionsException("Account is not allowed to create Project User", baseUser);
@@ -40,7 +40,7 @@ public List<ProjectUserDto> get(ProjectUserDto template) throws AqualityExceptio
4040

4141
@Override
4242
public boolean delete(ProjectUserDto template) throws AqualityException {
43-
if(baseUser.isAdmin() || baseUser.getProjectUser(template.getProject_id()).isAdmin()){
43+
if(isEditorSession(template)){
4444
return projectUserDao.delete(template);
4545
}else{
4646
throw new AqualityPermissionsException("Account is not allowed to delete Project User", baseUser);
@@ -59,4 +59,10 @@ private List<ProjectUserDto> fillProjectUsers(List<ProjectUserDto> projectUsers)
5959
}
6060
return projectUsers;
6161
}
62+
63+
private boolean isEditorSession(ProjectUserDto template){
64+
return baseUser.isAdmin() || baseUser.isManager()
65+
|| baseUser.getProjectUser(template.getProject_id()).isAdmin()
66+
|| baseUser.getProjectUser(template.getProject_id()).isManager();
67+
}
6268
}

src/main/java/main/controllers/Project/ResultController.java

Lines changed: 57 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ public class ResultController extends BaseController<TestResultDto> {
1717
private ProjectUserController projectUserController;
1818
private ResultResolutionController resultResolutionController;
1919
private FinalResultController finalResultController;
20+
private ProjectController projectController;
21+
private StepController stepController;
22+
private StepResultController stepResultController;
2023

2124
public ResultController(UserDto user) {
2225
super(user);
@@ -26,12 +29,19 @@ public ResultController(UserDto user) {
2629
testDao = new TestDao();
2730
resultResolutionController = new ResultResolutionController(user);
2831
finalResultController = new FinalResultController(user);
32+
projectController = new ProjectController(user);
33+
stepController = new StepController(user);
34+
stepResultController = new StepResultController(user);
2935
}
3036

3137
@Override
3238
public TestResultDto create(TestResultDto template) throws AqualityException {
3339
if(baseUser.isManager() || baseUser.getProjectUser(template.getProject_id()).isEditor()){
34-
return testResultDao.create(template);
40+
TestResultDto testResult = testResultDao.create(template);
41+
if(projectController.isStepsEnabled(testResult.getProject_id()) && template.getId() == null){
42+
createPendingStepResults(testResult);
43+
}
44+
return testResult;
3545
}else{
3646
throw new AqualityPermissionsException("Account is not allowed to create Test Result", baseUser);
3747
}
@@ -75,7 +85,23 @@ public List<TestResultStatDto> get(TestResultStatDto template) throws AqualityEx
7585
}
7686
}
7787

78-
//TODO Refactoring
88+
private void createPendingStepResults(TestResultDto template) throws AqualityException {
89+
Step2TestDto step2TestTemplate = new Step2TestDto();
90+
step2TestTemplate.setProject_id(template.getProject_id());
91+
step2TestTemplate.setTest_id(template.getTest_id());
92+
List<StepDto> testSteps = stepController.getTestSteps(step2TestTemplate);
93+
for (StepDto step : testSteps) {
94+
StepResultDto stepResult = new StepResultDto();
95+
stepResult.setProject_id(template.getProject_id());
96+
stepResult.setResult_id(template.getId());
97+
stepResult.setType_id(step.getType_id());
98+
stepResult.setName(step.getName());
99+
stepResult.setFinal_result_id(3);
100+
stepResult.setOrder(step.getOrder());
101+
stepResultController.create(stepResult);
102+
}
103+
}
104+
79105
private List<TestResultDto> fillResults(List<TestResultDto> results) throws AqualityException {
80106

81107
if(results.size() > 0){
@@ -86,20 +112,38 @@ private List<TestResultDto> fillResults(List<TestResultDto> results) throws Aqua
86112
List<TestDto> tests = testDao.searchAll(testTemplate);
87113

88114
for (TestResultDto result: results){
89-
90-
result.setFinal_result(finalResults.stream().filter( x -> x.getId().equals(result.getFinal_result_id())).findFirst().orElse(null));
91-
result.setTest(tests.stream().filter(x -> x.getId().equals(result.getTest_id())).findFirst().orElse(null));
92-
result.setTest_resolution(resolutions.stream().filter( x -> x.getId().equals(result.getTest_resolution_id())).findFirst().orElse(null));
93-
94-
if(result.getAssignee() != null){
95-
ProjectUserDto projectUserDto = new ProjectUserDto();
96-
projectUserDto.setUser_id(result.getAssignee());
97-
projectUserDto.setProject_id(result.getProject_id());
98-
result.setAssigned_user(projectUserController.get(projectUserDto).get(0));
99-
}
115+
fillResult(result, finalResults, resolutions, tests);
100116
}
101117
}
102118

103119
return results;
104120
}
121+
122+
private void fillResult(TestResultDto result, List<FinalResultDto> finalResults, List<ResultResolutionDto> resolutions, List<TestDto> tests) throws AqualityException {
123+
if (projectController.isStepsEnabled(result.getProject_id())) {
124+
fillResultSteps(result);
125+
}
126+
127+
result.setFinal_result(finalResults.stream().filter(x -> x.getId().equals(result.getFinal_result_id())).findFirst().orElse(null));
128+
result.setTest(tests.stream().filter(x -> x.getId().equals(result.getTest_id())).findFirst().orElse(null));
129+
result.setTest_resolution(resolutions.stream().filter(x -> x.getId().equals(result.getTest_resolution_id())).findFirst().orElse(null));
130+
fillResultAssignee(result);
131+
}
132+
133+
private void fillResultSteps(TestResultDto result) throws AqualityException {
134+
StepResultDto stepResultTemplate = new StepResultDto();
135+
stepResultTemplate.setResult_id(result.getId());
136+
stepResultTemplate.setProject_id(result.getProject_id());
137+
result.setSteps(stepResultController.get(stepResultTemplate));
138+
}
139+
140+
private void fillResultAssignee(TestResultDto result) throws AqualityException {
141+
if (result.getAssignee() != null) {
142+
ProjectUserDto projectUserDto = new ProjectUserDto();
143+
projectUserDto.setUser_id(result.getAssignee());
144+
projectUserDto.setProject_id(result.getProject_id());
145+
result.setAssigned_user(projectUserController.get(projectUserDto).get(0));
146+
}
147+
}
148+
105149
}

0 commit comments

Comments
 (0)