Skip to content

Commit

Permalink
add filesFromLatestPublishedVersion endpoint #1717
Browse files Browse the repository at this point in the history
  • Loading branch information
pdurbin committed Mar 27, 2015
1 parent d3a2874 commit 9c1d2cf
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/api/Datasets.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import edu.harvard.iq.dataverse.DatasetVersion;
import edu.harvard.iq.dataverse.Dataverse;
import edu.harvard.iq.dataverse.DataverseServiceBean;
import edu.harvard.iq.dataverse.FileMetadata;
import edu.harvard.iq.dataverse.MetadataBlock;
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.authorization.users.User;
Expand Down Expand Up @@ -347,6 +348,40 @@ public Response getLinks(@PathParam("id") long idSupplied, @QueryParam("key") St
}
}

@GET
@Path("filesFromLatestPublishedVersion")
public Response listFilesFromLatestPublishedVersion(@QueryParam("globalId") String globalId) {
if (globalId == null || globalId.isEmpty()) {
return errorResponse(Response.Status.NOT_FOUND, "The globalId provided was null or empty.");
}
Dataset dataset = null;
try {
dataset = datasetService.findByGlobalId(globalId);
} catch (Exception ex) {
String msg = ex.getLocalizedMessage();
if (msg != null) {
return errorResponse(Response.Status.NOT_FOUND, "Unable to look up dataset: " + msg);
} else {
return errorResponse(Response.Status.NOT_FOUND, "Unable to look up dataset: " + ex);
}
}
if (dataset == null) {
return errorResponse(Response.Status.NOT_FOUND, "Dataset not found");
}
DatasetVersion releasedVersion = dataset.getReleasedVersion();
if (releasedVersion == null) {
return errorResponse(Response.Status.NOT_FOUND, "No released version found.");
}
JsonArrayBuilder fileListBuilder = Json.createArrayBuilder();
for (FileMetadata fileMetadata : releasedVersion.getFileMetadatas()) {
JsonObjectBuilder fileBuilder = Json.createObjectBuilder();
fileBuilder.add("id", fileMetadata.getId());
fileBuilder.add("filename", fileMetadata.getLabel());
fileListBuilder.add(fileBuilder);
}
return okResponse(fileListBuilder);
}

private <T> T handleVersion( String versionId, DsVersionHandler<T> hdl )
throws WrappedResponse {
switch (versionId) {
Expand Down

0 comments on commit 9c1d2cf

Please sign in to comment.