diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseRequest.java index 91c0b0c..bad3de3 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseRequest.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseRequest.java @@ -1,9 +1,11 @@ package org.gcube.application.cms.plugins.requests; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ser.Serializers; import lombok.*; import org.bson.Document; import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; +import org.gcube.application.cms.serialization.Serialization; import org.gcube.application.geoportal.common.faults.InvalidRequestException; import org.gcube.application.geoportal.common.model.document.accounting.Context; import org.gcube.application.geoportal.common.model.document.accounting.User; @@ -39,7 +41,11 @@ public class BaseRequest { public static final String getMandatory(String param,Document params) throws InvalidPluginRequestException { if(params==null || params.isEmpty()|| !params.containsKey(param)) throw new InvalidPluginRequestException("Missing mandatory parameter "+param); - return params.getString(param); + try { + return Serialization.write(params.get(param)); + } catch (JsonProcessingException e) { + throw new InvalidPluginRequestException(e); + } } public BaseRequest validate() throws InvalidPluginRequestException { diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index 5cf9310..38c7368 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -874,6 +874,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< log.info("[UseCaseDescriptor {}] triggering event {} on {}" , useCaseDescriptor.getId(),event,getManager().getDescriptor()); AccountingInfo user= UserUtils.getCurrent().asInfo(); EventExecutionRequest request= new EventExecutionRequest(useCaseDescriptor,user.getUser(),user.getContext(),project,event); + request.setCallParameters(parameters); log.debug("Triggering {}",request); DocumentHandlingReport report = getManager().onEvent(request); return report.prepareResult(); diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java index 75ec6dd..8dbeedd 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java @@ -98,10 +98,14 @@ public abstract class AbstractProfiledDocumentsTests extends BasicServiceTestUni } protected void delete(String id) throws Exception { - check(baseTarget().path(id).request(MediaType.APPLICATION_JSON). + delete(id,false); + } + + protected void delete(String id,Boolean force) throws Exception { + check(baseTarget().path(id).queryParam("force",force).request(MediaType.APPLICATION_JSON). delete(), null); } - + protected Project update(String id, Document newContent)throws Exception { Project doc = check(baseTarget().path(id).request(MediaType.APPLICATION_JSON). diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java index c745372..df4df74 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java @@ -75,7 +75,7 @@ public class DummyProjectTest extends AbstractProfiledDocumentsTests{ @Test public void testDelete() throws Exception { assumeTrue(GCubeTest.isTestInfrastructureEnabled()); - delete(createWithFileSet().getId()); + delete(createWithFileSet().getId(),true); }