gcube-cms-suite/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseRequest.java

40 lines
1.3 KiB
Java

package org.gcube.application.cms.plugins.requests;
import lombok.*;
import org.bson.Document;
import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException;
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;
@Getter
@Setter
@ToString(callSuper = true)
@RequiredArgsConstructor
public class BaseRequest {
@NonNull
UseCaseDescriptor useCaseDescriptor;
@NonNull
User caller;
@NonNull
Context context;
Document callParameters;
public final String getMandatory(String param) throws InvalidPluginRequestException {
return getMandatory(param,callParameters);
}
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);
}
public void validate() throws InvalidPluginRequestException {
if(useCaseDescriptor ==null)throw new InvalidPluginRequestException("UseCaseDescriptor cannot be null ");
}
}