You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sdi-service/src/main/java/org/gcube/spatial/data/sdi/rest/Metadata.java

58 lines
1.8 KiB
Java

package org.gcube.spatial.data.sdi.rest;
import java.io.InputStream;
import java.util.List;
import java.util.Set;
import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.gcube.spatial.data.sdi.engine.MetadataTemplateManager;
import org.gcube.spatial.data.sdi.model.ServiceConstants;
import org.gcube.spatial.data.sdi.model.metadata.MetadataReport;
import org.gcube.spatial.data.sdi.model.metadata.TemplateDescriptor;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Path(ServiceConstants.Metadata.INTERFACE)
public class Metadata {
@Inject
MetadataTemplateManager templateManager;
@POST
@Path("/{gnCategory}")
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
public MetadataReport pushMetadata(@QueryParam(ServiceConstants.Metadata.VALIDATE_PARAMETER) @DefaultValue("true") Boolean validate,
@QueryParam(ServiceConstants.Metadata.PUBLIC_PARAMETER) @DefaultValue("false") Boolean makePublic,
@FormDataParam(ServiceConstants.Metadata.UPLOADED_FILE_PARAMETER) InputStream uploadedMeta,
@FormDataParam(ServiceConstants.Metadata.UPLOADED_FILE_PARAMETER) FormDataContentDisposition uploadedMetaDetails,
@FormDataParam(ServiceConstants.Metadata.METADATA_ENRICHMENTS_PARAMETER) Set<String> metadataEnrichments){
//Receive metadata
//Optionally enrich it
//Publish it NB : validate & make public
return null;
}
@GET
@Path("/list")
@Produces(MediaType.APPLICATION_JSON)
public Set<TemplateDescriptor> getList(){
return templateManager.getAvailableTemplates();
}
}