From 80459d55464e2c11f4debbc612a1922970cc47b2 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Thu, 29 Sep 2022 16:07:55 +0200 Subject: [PATCH] Relationship testing --- cms-test-commons/pom.xml | 1 + .../client/DefaultDocumentsClient.java | 2 +- .../serialization/UseCaseDescriptors.java | 5 ++++ .../RelationshipDefinition.java | 25 +++++++++++++++++++ .../useCaseDescriptor/UseCaseDescriptor.java | 7 +++++- .../profiles/basicProfile.json | 7 ++++++ 6 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/RelationshipDefinition.java diff --git a/cms-test-commons/pom.xml b/cms-test-commons/pom.xml index d410134..7e16fdf 100644 --- a/cms-test-commons/pom.xml +++ b/cms-test-commons/pom.xml @@ -63,6 +63,7 @@ org.gcube.application.cms cms-plugin-framework + compile diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultDocumentsClient.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultDocumentsClient.java index 9f4a593..820d266 100644 --- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultDocumentsClient.java +++ b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultDocumentsClient.java @@ -311,7 +311,7 @@ public class DefaultDocumentsClient implements Projects { queryParam(InterfaceConstants.Parameters.TARGET_ID,request.getTargetId()). queryParam(InterfaceConstants.Parameters.TARGET_UCD,request.getTargetUCD()). request(MediaType.APPLICATION_JSON). - put(Entity.entity(null, MediaType.APPLICATION_JSON)),getManagedClass()); + put(Entity.json("")),getManagedClass()); }; T toReturn=delegate.make(call); log.info("Set relationship {}:{} --{}--> {}:{}", diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/serialization/UseCaseDescriptors.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/serialization/UseCaseDescriptors.java index 05514d2..9cf043e 100644 --- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/serialization/UseCaseDescriptors.java +++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/serialization/UseCaseDescriptors.java @@ -48,6 +48,11 @@ public class UseCaseDescriptors { System.out.println(h); validate(h); }); + + if(useCaseDescriptor.getRelationshipDefinitions()!=null) + useCaseDescriptor.getRelationshipDefinitions().forEach(relationshipDefinition -> { + System.out.println(relationshipDefinition);}); + } } diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/RelationshipDefinition.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/RelationshipDefinition.java new file mode 100644 index 0000000..63e10aa --- /dev/null +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/RelationshipDefinition.java @@ -0,0 +1,25 @@ +package org.gcube.application.geoportal.common.model.useCaseDescriptor; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import javax.xml.bind.annotation.XmlRootElement; + +@Data +@NoArgsConstructor +public class RelationshipDefinition { + + public static final String ID="_id"; + public static final String LABEL="_label"; + public static final String REVERSE_RELATION_ID="_reverseRelationId"; + + @JsonProperty(ID) + private String id; + @JsonProperty(LABEL) + private String label; + @JsonProperty(REVERSE_RELATION_ID) + private String reverseRelationId; + +} diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/UseCaseDescriptor.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/UseCaseDescriptor.java index fb47c26..c8d0a9f 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/UseCaseDescriptor.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/useCaseDescriptor/UseCaseDescriptor.java @@ -34,6 +34,7 @@ public class UseCaseDescriptor implements Serializable { public static final String HANDLERS="_handlers"; public static final String DATA_ACCESS_POLICIES="_dataAccessPolicies"; + public static final String RELATIONSHIP_DEFINITIONS="_relationshipDefinitions"; @JsonProperty(MONGO_ID) private ObjectId mongoId; @@ -56,10 +57,14 @@ public class UseCaseDescriptor implements Serializable { @JsonProperty(HANDLERS) private List handlers; - @JsonProperty(DATA_ACCESS_POLICIES) private List dataAccessPolicies; + + @JsonProperty(RELATIONSHIP_DEFINITIONS) + private List relationshipDefinitions; + + /** * Returns map Type -> Handler Declaration * @return diff --git a/test-data/profiledDocuments/profiles/basicProfile.json b/test-data/profiledDocuments/profiles/basicProfile.json index 6c7364c..1a38d36 100644 --- a/test-data/profiledDocuments/profiles/basicProfile.json +++ b/test-data/profiledDocuments/profiles/basicProfile.json @@ -26,6 +26,13 @@ {"_policy" : {"_read" : "any", "_write" : "any"}, "_roles":["Admin"]} ], + "_relationshipDefinitions" : [ + {"_id": "precedes", "_label" : "Precedes", + "_reverseRelationId" : "follows"}, + {"_id": "follows", "_label" : "Follows", + "_reverseRelationId" : "precedes"} + ], + "_handlers" : [ {