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 metadataEnrichments){ //Receive metadata //Optionally enrich it //Publish it NB : validate & make public return null; } @GET @Path("/list") @Produces(MediaType.APPLICATION_JSON) public Set getList(){ return templateManager.getAvailableTemplates(); } }