Added getRelationshipChain

This commit is contained in:
Francesco Mangiacrapa 2022-10-11 15:55:24 +02:00
parent 2a6e51b238
commit e8a52bcf7e
2 changed files with 75 additions and 23 deletions

View File

@ -18,6 +18,7 @@ import org.gcube.application.geoportal.common.faults.InvalidRequestException;
import org.gcube.application.geoportal.common.model.configuration.Archive;
import org.gcube.application.geoportal.common.model.configuration.Configuration;
import org.gcube.application.geoportal.common.model.document.Project;
import org.gcube.application.geoportal.common.model.document.relationships.RelationshipNavigationObject;
import org.gcube.application.geoportal.common.model.rest.CreateRelationshipRequest;
import org.gcube.application.geoportal.common.model.rest.DeleteRelationshipRequest;
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
@ -159,6 +160,22 @@ public class ProjectsCaller {
return project;
}
/**
* Gets the relationship chain.
*
* @param profileID the profile ID
* @param projectID the project ID
* @return the relationship chain
* @throws Exception the exception
*/
public Iterator<RelationshipNavigationObject> getRelationshipChain(String profileID, String projectID)
throws Exception {
LOG.info("getRelationshipChain called for profileID: {}, projectID: {}", profileID, projectID);
Projects<Project> client = (Projects<Project>) getClient(profileID);
return client.getRelationshipChain(profileID, projectID);
}
/**
* Gets the configuration.
*

View File

@ -13,6 +13,7 @@ import java.util.Map;
import org.gcube.application.geoportal.common.model.configuration.Configuration;
import org.gcube.application.geoportal.common.model.document.Project;
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
import org.gcube.application.geoportal.common.model.document.relationships.RelationshipNavigationObject;
import org.gcube.application.geoportalcommon.ConvertToDataValueObjectModel;
import org.gcube.application.geoportalcommon.ProjectDVBuilder;
import org.gcube.application.geoportalcommon.geoportal.GeoportalClientCaller;
@ -43,7 +44,7 @@ public class Project_Tests {
// private static String TOKEN = ""; //preVRE
private static String CONTEXT = "/gcube/devsec/devVRE";
private static String TOKEN = "c41a00c0-7897-48d2-a67a-05190d6ce5e6-98187548"; // devVRE
private static String TOKEN = ""; // devVRE
private static String PROFILE_ID = "profiledConcessioni";
private static String PROJECT_ID = "632c633155e2947b0278c999";
@ -91,7 +92,7 @@ public class Project_Tests {
}
@Test
// @Test
public void getResultDocumentForID() {
try {
ProjectsCaller projects = GeoportalClientCaller.projects();
@ -195,6 +196,36 @@ public class Project_Tests {
}
@Test
public void getRelationshipsChain() throws Exception {
System.out.println("getRelationshipsChain test");
Iterator<RelationshipNavigationObject> iterator = client.getRelationshipChain(PROFILE_ID, PROJECT_ID);
while (iterator.hasNext()) {
RelationshipNavigationObject nav = (RelationshipNavigationObject) iterator.next();
visitRelationshipsChain(nav);
}
}
public void visitRelationshipsChain(RelationshipNavigationObject nav) {
if (nav == null)
return;
printObject(nav.getTarget());
for (RelationshipNavigationObject relationship : nav.getChildren()) {
visitRelationshipsChain(relationship);
}
}
public void printObject(Project project) {
System.out.println("Project id: " + project.getId() + ", profile: " + project.getProfileID() + ", doc: "
+ project.getTheDocument().toJson());
}
// @Test
public void deserializeISOJSONObjectAsDate() throws Exception {
@ -204,20 +235,24 @@ public class Project_Tests {
try {
/*ObjectMapper objectMapper = new ObjectMapper();
JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addDeserializer(LocalDate.class, new MyLocalDateDeserializer());
javaTimeModule.addSerializer(LocalDate.class, new MyLocalDateSerializer());
objectMapper.registerModule(javaTimeModule);
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false);
LocalDate date = objectMapper.readerFor(LocalDate.class).readValue(jsonDate);
System.out.println(date);*/
/*
* ObjectMapper objectMapper = new ObjectMapper(); JavaTimeModule javaTimeModule
* = new JavaTimeModule(); javaTimeModule.addDeserializer(LocalDate.class, new
* MyLocalDateDeserializer()); javaTimeModule.addSerializer(LocalDate.class, new
* MyLocalDateSerializer()); objectMapper.registerModule(javaTimeModule);
*
* objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
* objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
* false); objectMapper.configure(SerializationFeature.
* WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false); LocalDate date =
* objectMapper.readerFor(LocalDate.class).readValue(jsonDate);
* System.out.println(date);
*/
// checking if the jsonDate is a LocalDate
//LocalDateTime date = org.gcube.application.geoportal.client.utils.Serialization.read(jsonDate, LocalDateTime.class);
// LocalDateTime date =
// org.gcube.application.geoportal.client.utils.Serialization.read(jsonDate,
// LocalDateTime.class);
LocalDate date = org.gcube.application.geoportal.client.utils.Serialization.read(jsonDate, LocalDate.class);
System.out.println(date);
} catch (IOException e) {