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