Force support on delete

This commit is contained in:
Fabio Sinibaldi 2022-05-31 13:38:12 +02:00
parent 9536379efb
commit 166ea432c3
2 changed files with 12 additions and 1 deletions

View File

@ -136,8 +136,10 @@ public class SimpleLifeCycleManager extends AbstractLifeCycleManager implements
@Override
protected EventExecutionReport onDeleteDocument(EventExecutionReport report) throws ConfigurationException, InvalidPluginRequestException, MaterializationException, EventException {
// Block non draft only if not force
if(!Boolean.parseBoolean(report.getTheRequest().getWithDefault("force","false")))
blockNonDraft(report);
// dematerialize all
blockNonDraft(report);
JSONPathWrapper wrapper = new JSONPathWrapper(report.getTheRequest().getDocument().getTheDocument().toJson());
for (String s : wrapper.getMatchingPaths("$..[?(@." + RegisteredFileSet.PAYLOADS + ")]")){
log.info("Requesting dematerialization for {} ",s);

View File

@ -4,6 +4,7 @@ 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.geoportal.common.faults.InvalidRequestException;
import org.gcube.application.geoportal.common.model.document.accounting.Context;
import org.gcube.application.geoportal.common.model.document.accounting.User;
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
@ -28,6 +29,14 @@ public class BaseRequest {
return getMandatory(param,callParameters);
}
public final String getWithDefault(String param,String defaultValue) {
try{
return getMandatory(param,callParameters);
}catch (InvalidPluginRequestException e){
return defaultValue;
}
}
public static final String getMandatory(String param,Document params) throws InvalidPluginRequestException {
if(!params.containsKey(param)) throw new InvalidPluginRequestException("Missing mandatory parameter "+param);
return params.getString(param);