From eb900141e217a2bf99c56a9e159a1405e34929ad Mon Sep 17 00:00:00 2001 From: "manuele.simi" Date: Sun, 21 Jan 2018 20:38:19 +0000 Subject: [PATCH] Validate the parent exists in the create operation, if specified in the input context. git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/resource-management/resource-manager@162406 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../manager/webapp/context/CreateRequest.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/webapp/src/main/java/org/gcube/resourcemanagement/manager/webapp/context/CreateRequest.java b/webapp/src/main/java/org/gcube/resourcemanagement/manager/webapp/context/CreateRequest.java index 8e0573b..6232980 100644 --- a/webapp/src/main/java/org/gcube/resourcemanagement/manager/webapp/context/CreateRequest.java +++ b/webapp/src/main/java/org/gcube/resourcemanagement/manager/webapp/context/CreateRequest.java @@ -5,6 +5,7 @@ import java.util.Objects; import org.gcube.informationsystem.model.entity.Context; import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException; import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextAlreadyPresentException; +import org.gcube.resourcemanagement.manager.io.codeexceptions.LocalCodeException; import org.gcube.resourcemanagement.manager.io.codeexceptions.WebCodeException; import org.gcube.resourcemanagement.manager.io.rs.RMCreateContextCode; @@ -31,12 +32,13 @@ public final class CreateRequest extends RequestToResourceRegistry { * @see org.gcube.resourcemanagement.manager.webapp.context.RequestToResourceRegistry#validate() */ @Override - public CreateRequest validate() throws Exception { - //TODO: to implement + public void validate() throws LocalCodeException { if (Objects.nonNull(this.context.getParent())) { - throw new Exception("Unable to manage a context with parent."); + Context parent = new Queries().fetchContext(this.context.getParent().getHeader().getUUID(), this.getContextClient()); + if (Objects.isNull(parent)) { + throw new LocalCodeException(RMCreateContextCode.CONTEXT_PARENT_DOES_NOT_EXIST); + } } - return this; } /* (non-Javadoc) @@ -45,7 +47,7 @@ public final class CreateRequest extends RequestToResourceRegistry { @Override protected ResponseFromResourceRegistry send() { try { - Context created = resourceRegistryContextClient.create(context); + Context created = this.getContextClient().create(context); if (Objects.nonNull(created)) { } else {