mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 01:54:22 +00:00
DS-3743 implement upload and license step section
This commit is contained in:
@@ -7,12 +7,8 @@
|
||||
*/
|
||||
package org.dspace.app.rest.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.dspace.app.rest.RestResourceController;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
/**
|
||||
* The MetadataSchema REST Resource
|
||||
*
|
||||
|
@@ -7,7 +7,32 @@
|
||||
*/
|
||||
package org.dspace.app.rest.model.step;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty.Access;
|
||||
|
||||
public class DataLicense implements SectionData {
|
||||
|
||||
@JsonProperty(access = Access.READ_ONLY)
|
||||
private String url;
|
||||
|
||||
private String acceptanceDate;
|
||||
|
||||
public String getAcceptanceDate() {
|
||||
return acceptanceDate;
|
||||
}
|
||||
|
||||
public void setAcceptanceDate(String acceptanceDate) {
|
||||
this.acceptanceDate = acceptanceDate;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@@ -7,6 +7,72 @@
|
||||
*/
|
||||
package org.dspace.app.rest.model.step;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.dspace.app.rest.model.CheckSumRest;
|
||||
import org.dspace.app.rest.model.MetadataEntryRest;
|
||||
import org.dspace.app.rest.model.step.DataUpload.UploadBitstreamRest;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
||||
|
||||
public class DataUpload implements SectionData {
|
||||
|
||||
@JsonUnwrapped
|
||||
private List<UploadBitstreamRest> files;
|
||||
|
||||
public List<UploadBitstreamRest> getFiles() {
|
||||
if(files==null) {
|
||||
files = new ArrayList<UploadBitstreamRest>();
|
||||
}
|
||||
return files;
|
||||
}
|
||||
|
||||
public void setFiles(List<UploadBitstreamRest> files) {
|
||||
this.files = files;
|
||||
}
|
||||
|
||||
public class UploadBitstreamRest {
|
||||
|
||||
private List<MetadataEntryRest> metadata;
|
||||
private Long sizeBytes;
|
||||
private CheckSumRest checkSum;
|
||||
private String url;
|
||||
|
||||
public List<MetadataEntryRest> getMetadata() {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
public void setMetadata(List<MetadataEntryRest> metadata) {
|
||||
this.metadata = metadata;
|
||||
}
|
||||
|
||||
public Long getSizeBytes() {
|
||||
return sizeBytes;
|
||||
}
|
||||
|
||||
public void setSizeBytes(Long sizeBytes) {
|
||||
this.sizeBytes = sizeBytes;
|
||||
}
|
||||
|
||||
public CheckSumRest getCheckSum() {
|
||||
return checkSum;
|
||||
}
|
||||
|
||||
public void setCheckSum(CheckSumRest checkSum) {
|
||||
this.checkSum = checkSum;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
}
|
||||
|
||||
public UploadBitstreamRest createUploadBitstreamRest() {
|
||||
return new UploadBitstreamRest();
|
||||
}
|
||||
}
|
||||
|
@@ -9,14 +9,12 @@ package org.dspace.app.rest.submit;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.dspace.app.rest.model.RestModel;
|
||||
import org.dspace.app.rest.model.step.SectionData;
|
||||
import org.dspace.app.util.SubmissionStepConfig;
|
||||
import org.dspace.content.WorkspaceItem;
|
||||
|
||||
public interface AbstractRestProcessingStep {
|
||||
|
||||
public <T extends Serializable> T getData(WorkspaceItem obj, SubmissionStepConfig config);
|
||||
public <T extends Serializable> T getData(WorkspaceItem obj, SubmissionStepConfig config) throws Exception;
|
||||
|
||||
|
||||
}
|
||||
|
@@ -38,7 +38,7 @@ public class DescribeStep extends org.dspace.submit.step.DescribeStep implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public SectionData getData(WorkspaceItem obj, SubmissionStepConfig config) {
|
||||
public DataDescribe getData(WorkspaceItem obj, SubmissionStepConfig config) {
|
||||
DataDescribe data = new DataDescribe();
|
||||
try {
|
||||
DCInputSet inputConfig = inputReader.getInputsByFormName(config.getId());
|
||||
|
@@ -7,19 +7,29 @@
|
||||
*/
|
||||
package org.dspace.app.rest.submit.step;
|
||||
|
||||
import org.dspace.app.rest.model.RestModel;
|
||||
import org.dspace.app.rest.model.step.SectionData;
|
||||
import org.atteo.evo.inflector.English;
|
||||
import org.dspace.app.rest.model.BitstreamRest;
|
||||
import org.dspace.app.rest.model.step.DataLicense;
|
||||
import org.dspace.app.rest.submit.AbstractRestProcessingStep;
|
||||
import org.dspace.app.util.SubmissionStepConfig;
|
||||
import org.dspace.content.Bitstream;
|
||||
import org.dspace.content.WorkspaceItem;
|
||||
import org.dspace.core.Constants;
|
||||
|
||||
public class LicenseStep extends org.dspace.submit.step.LicenseStep implements AbstractRestProcessingStep {
|
||||
|
||||
private static final String DC_RIGHTS_DATE = "dc.rights.date";
|
||||
|
||||
@Override
|
||||
public SectionData getData(WorkspaceItem obj, SubmissionStepConfig config) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public DataLicense getData(WorkspaceItem obj, SubmissionStepConfig config) throws Exception {
|
||||
DataLicense result = new DataLicense();
|
||||
Bitstream bitstream = bitstreamService.getBitstreamByName(obj.getItem(), Constants.LICENSE_BUNDLE_NAME, Constants.LICENSE_BITSTREAM_NAME);
|
||||
if(bitstream!=null) {
|
||||
String acceptanceDate = bitstreamService.getMetadata(bitstream, DC_RIGHTS_DATE);
|
||||
result.setAcceptanceDate(acceptanceDate);
|
||||
result.setUrl(configurationService.getProperty("dspace.url")+"/api/"+BitstreamRest.CATEGORY +"/"+ English.plural(BitstreamRest.NAME) + "/" + bitstream.getID() + "/content");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -7,17 +7,51 @@
|
||||
*/
|
||||
package org.dspace.app.rest.submit.step;
|
||||
|
||||
import org.dspace.app.rest.model.step.SectionData;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.atteo.evo.inflector.English;
|
||||
import org.dspace.app.rest.model.BitstreamRest;
|
||||
import org.dspace.app.rest.model.CheckSumRest;
|
||||
import org.dspace.app.rest.model.MetadataEntryRest;
|
||||
import org.dspace.app.rest.model.step.DataUpload;
|
||||
import org.dspace.app.rest.submit.AbstractRestProcessingStep;
|
||||
import org.dspace.app.util.SubmissionStepConfig;
|
||||
import org.dspace.content.Bitstream;
|
||||
import org.dspace.content.Bundle;
|
||||
import org.dspace.content.MetadataValue;
|
||||
import org.dspace.content.WorkspaceItem;
|
||||
import org.dspace.core.Constants;
|
||||
|
||||
public class UploadStep extends org.dspace.submit.step.UploadStep implements AbstractRestProcessingStep {
|
||||
|
||||
@Override
|
||||
public SectionData getData(WorkspaceItem obj, SubmissionStepConfig config) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public DataUpload getData(WorkspaceItem obj, SubmissionStepConfig config) throws Exception {
|
||||
|
||||
DataUpload result = new DataUpload();
|
||||
List<Bundle> bundles = itemService.getBundles(obj.getItem(), Constants.CONTENT_BUNDLE_NAME);
|
||||
for(Bundle bundle : bundles) {
|
||||
for(Bitstream source : bundle.getBitstreams()) {
|
||||
DataUpload.UploadBitstreamRest b = result.createUploadBitstreamRest();
|
||||
List<MetadataEntryRest> metadata = new ArrayList<MetadataEntryRest>();
|
||||
for (MetadataValue mv : source.getMetadata()) {
|
||||
MetadataEntryRest me = new MetadataEntryRest();
|
||||
me.setKey(mv.getMetadataField().toString('.'));
|
||||
me.setValue(mv.getValue());
|
||||
me.setLanguage(mv.getLanguage());
|
||||
metadata.add(me);
|
||||
}
|
||||
b.setMetadata(metadata);
|
||||
CheckSumRest checksum = new CheckSumRest();
|
||||
checksum.setCheckSumAlgorithm(source.getChecksumAlgorithm());
|
||||
checksum.setValue(source.getChecksum());
|
||||
b.setCheckSum(checksum);
|
||||
b.setSizeBytes(source.getSize());
|
||||
b.setUrl(configurationService.getProperty("dspace.url")+"/api/"+BitstreamRest.CATEGORY +"/"+ English.plural(BitstreamRest.NAME) + "/" + source.getID() + "/content");
|
||||
result.getFiles().add(b);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -28,8 +28,8 @@ dspace.hostname = localhost
|
||||
# DSpace base host URL. Include port number etc.
|
||||
dspace.baseUrl = http://localhost:8080
|
||||
|
||||
# The user interface you will be using for DSpace. Common usage is either xmlui or jspui
|
||||
dspace.ui = xmlui
|
||||
# The user interface you will be using for DSpace.
|
||||
dspace.ui = dspace-spring-rest
|
||||
|
||||
# Full link your end users will use to access DSpace. In most cases, this will be the baseurl followed by
|
||||
# the context path to the UI you are using.
|
||||
|
Reference in New Issue
Block a user