You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by bh...@apache.org on 2019/07/05 13:22:38 UTC
[incubator-dlab] 03/04: DLAB-853 fixed bug connected with project
updating
This is an automated email from the ASF dual-hosted git repository.
bhliva pushed a commit to branch feature/projects
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 55af33c9220dacd1a20387aaa91b0463021f576e
Author: bhliva <bo...@epam.com>
AuthorDate: Fri Jul 5 14:39:40 2019 +0300
DLAB-853 fixed bug connected with project updating
---
.../java/com/epam/dlab/backendapi/dao/ProjectDAO.java | 3 ++-
.../com/epam/dlab/backendapi/dao/ProjectDAOImpl.java | 9 +++++++--
.../epam/dlab/backendapi/domain/UpdateProjectDTO.java | 19 +++++++++++++++++++
.../dlab/backendapi/resources/ProjectResource.java | 3 ++-
.../epam/dlab/backendapi/service/ProjectService.java | 3 ++-
.../backendapi/service/impl/ProjectServiceImpl.java | 3 ++-
6 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
index e8f428b..7624bce 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
@@ -2,6 +2,7 @@ package com.epam.dlab.backendapi.dao;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.ProjectDTO;
+import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.dto.base.edge.EdgeInfo;
import java.util.List;
@@ -21,7 +22,7 @@ public interface ProjectDAO {
Optional<ProjectDTO> get(String name);
- boolean update(ProjectDTO projectDTO);
+ boolean update(UpdateProjectDTO projectDTO);
void remove(String name);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java
index f54cbc6..059d08e 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java
@@ -2,6 +2,7 @@ package com.epam.dlab.backendapi.dao;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.ProjectDTO;
+import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.dto.base.edge.EdgeInfo;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
@@ -21,6 +22,7 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO {
private static final String PROJECTS_COLLECTION = "Projects";
private static final String GROUPS = "groups";
+ private static final String ENDPOINTS = "endpoints";
private static final String STATUS_FIELD = "status";
private static final String EDGE_INFO_FIELD = "edgeInfo";
@@ -70,9 +72,12 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO {
}
@Override
- public boolean update(ProjectDTO projectDTO) {
+ public boolean update(UpdateProjectDTO projectDTO) {
+ BasicDBObject updateProject = new BasicDBObject();
+ updateProject.put(GROUPS, projectDTO.getGroups());
+ updateProject.put(ENDPOINTS, projectDTO.getEndpoints());
return updateOne(PROJECTS_COLLECTION, projectCondition(projectDTO.getName()),
- new Document(SET, convertToBson(projectDTO))).getMatchedCount() > 0L;
+ new Document(SET, updateProject)).getMatchedCount() > 0L;
}
@Override
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java
new file mode 100644
index 0000000..5121412
--- /dev/null
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/UpdateProjectDTO.java
@@ -0,0 +1,19 @@
+package com.epam.dlab.backendapi.domain;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Set;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class UpdateProjectDTO {
+ @NotNull
+ private final String name;
+ @NotNull
+ private final Set<String> endpoints;
+ @NotNull
+ private final Set<String> groups;
+
+}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
index d6986cd..1d56658 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
@@ -3,6 +3,7 @@ package com.epam.dlab.backendapi.resources;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.domain.UpdateProjectBudgetDTO;
+import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.backendapi.resources.dto.ProjectActionFormDTO;
import com.epam.dlab.backendapi.service.ProjectService;
import com.epam.dlab.rest.dto.ErrorDTO;
@@ -161,7 +162,7 @@ public class ProjectResource {
schema = @Schema(implementation = ErrorDTO.class)))
})
@PUT
- public Response updateProject(@Parameter(hidden = true) @Auth UserInfo userInfo, ProjectDTO projectDTO) {
+ public Response updateProject(@Parameter(hidden = true) @Auth UserInfo userInfo, UpdateProjectDTO projectDTO) {
projectService.update(projectDTO);
return Response.ok().build();
}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
index 124e609..250aca3 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
@@ -2,6 +2,7 @@ package com.epam.dlab.backendapi.service;
import com.epam.dlab.auth.UserInfo;
import com.epam.dlab.backendapi.domain.ProjectDTO;
+import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import java.util.List;
@@ -18,7 +19,7 @@ public interface ProjectService {
void start(UserInfo userInfo, String name);
void stop(UserInfo userInfo, String name);
- void update(ProjectDTO projectDTO);
+ void update(UpdateProjectDTO projectDTO);
void updateBudget(String project, Integer budget);
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
index 9de3dea..23d0e9f 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
@@ -5,6 +5,7 @@ import com.epam.dlab.backendapi.dao.ProjectDAO;
import com.epam.dlab.backendapi.dao.UserGroupDao;
import com.epam.dlab.backendapi.domain.ProjectDTO;
import com.epam.dlab.backendapi.domain.RequestId;
+import com.epam.dlab.backendapi.domain.UpdateProjectDTO;
import com.epam.dlab.backendapi.service.EnvironmentService;
import com.epam.dlab.backendapi.service.ProjectService;
import com.epam.dlab.constants.ServiceConsts;
@@ -95,7 +96,7 @@ public class ProjectServiceImpl implements ProjectService {
}
@Override
- public void update(ProjectDTO projectDTO) {
+ public void update(UpdateProjectDTO projectDTO) {
if (!projectDAO.update(projectDTO)) {
throw projectNotFound().get();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org