diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java new file mode 100644 index 0000000..3af3ebf --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java @@ -0,0 +1,24 @@ +package org.gcube.application.cms.plugins.requests; + +import lombok.Data; +import org.bson.Document; +import org.gcube.application.geoportal.common.faults.InvalidRequestException; +import org.gcube.application.geoportal.common.model.document.ProfiledDocument; +import org.gcube.application.geoportal.common.model.profile.Profile; + +@Data +public class BaseExecutionRequest { + + Profile profile; + ProfiledDocument document; + Document callParameters; + + public final String getMandatory(String param) throws InvalidRequestException { + return getMandatory(param,callParameters); + } + + public static final String getMandatory(String param,Document params) throws InvalidRequestException { + if(!params.containsKey(param)) throw new InvalidRequestException("Missing mandatory parameter "+param); + return params.getString(param); + } +} diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/EventExecutionRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/EventExecutionRequest.java index a10efbf..0537d31 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/EventExecutionRequest.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/EventExecutionRequest.java @@ -7,7 +7,7 @@ import org.gcube.application.geoportal.common.model.document.ProfiledDocument; import org.gcube.application.geoportal.common.model.profile.Profile; @Data -public class EventExecutionRequest { +public class EventExecutionRequest extends BaseExecutionRequest{ public static class Events{ public static final String ON_INIT_DOCUMENT="@@@INIT_DOCUMENT@@"; @@ -15,9 +15,8 @@ public class EventExecutionRequest { public static final String ON_DELETE_DOCUMENT="@@@DELETE_DOCUMENT@@"; } - Profile profile; - ProfiledDocument document; + String event; - Document callParameters; + } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/MaterializationRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/MaterializationRequest.java index 3d24730..60f8eab 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/MaterializationRequest.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/MaterializationRequest.java @@ -6,9 +6,7 @@ import org.gcube.application.geoportal.common.model.document.ProfiledDocument; import org.gcube.application.geoportal.common.model.profile.Profile; @Data -public class MaterializationRequest { +public class MaterializationRequest extends BaseExecutionRequest{ + - ProfiledDocument document; - Document parameters; - Profile profile; } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/StepExecutionRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/StepExecutionRequest.java index c230f19..de56486 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/StepExecutionRequest.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/StepExecutionRequest.java @@ -8,7 +8,7 @@ import org.gcube.application.geoportal.common.model.document.accounting.User; import org.gcube.application.geoportal.common.model.profile.Profile; @Data -public class StepExecutionRequest { +public class StepExecutionRequest extends BaseExecutionRequest{ public static class Steps{ @@ -20,10 +20,8 @@ public class StepExecutionRequest { } - Profile profile; - ProfiledDocument document; + String step; - Document callParameters; User user; Context context; }