Skip to content

Commit

Permalink
Refactor: getVersionFiles endpoint invalid orderCriteria error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
GPortas committed Jul 27, 2023
1 parent 991641b commit 1ff9d90
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/main/java/edu/harvard/iq/dataverse/api/Datasets.java
Original file line number Diff line number Diff line change
Expand Up @@ -496,11 +496,13 @@ public Response getVersion(@Context ContainerRequestContext crc, @PathParam("id"
public Response getVersionFiles(@Context ContainerRequestContext crc, @PathParam("id") String datasetId, @PathParam("versionId") String versionId, @QueryParam("limit") Integer limit, @QueryParam("offset") Integer offset, @QueryParam("orderCriteria") String orderCriteria, @Context UriInfo uriInfo, @Context HttpHeaders headers) {
return response( req -> {
DatasetVersion datasetVersion = getDatasetVersionOrDie(req, versionId, findDatasetOrDie(datasetId), uriInfo, headers);
DatasetVersionServiceBean.FileMetadatasOrderCriteria fileMetadatasOrderCriteria;
try {
return ok(jsonFileMetadatas(datasetversionService.getFileMetadatas(datasetVersion, limit, offset, orderCriteria != null ? DatasetVersionServiceBean.FileMetadatasOrderCriteria.valueOf(orderCriteria) : DatasetVersionServiceBean.FileMetadatasOrderCriteria.NameAZ)));
fileMetadatasOrderCriteria = orderCriteria != null ? DatasetVersionServiceBean.FileMetadatasOrderCriteria.valueOf(orderCriteria) : DatasetVersionServiceBean.FileMetadatasOrderCriteria.NameAZ;
} catch (IllegalArgumentException e) {
return error(Response.Status.BAD_REQUEST, "Invalid order criteria: " + orderCriteria);
}
return ok(jsonFileMetadatas(datasetversionService.getFileMetadatas(datasetVersion, limit, offset, fileMetadatasOrderCriteria)));
}, getRequestUser(crc));
}

Expand Down
7 changes: 7 additions & 0 deletions src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -3386,5 +3386,12 @@ public void getVersionFiles() throws IOException {
.body("data[2].label", equalTo(testFileName2))
.body("data[3].label", equalTo(testFileName3))
.body("data[4].label", equalTo(testFileName4));

// Test invalid order criteria
String invalidOrderCriteria = "invalidOrderCriteria";
Response getVersionFilesResponseInvalidOrderCriteria = UtilIT.getVersionFiles(datasetId, testDatasetVersion, null, null, invalidOrderCriteria, apiToken);
getVersionFilesResponseInvalidOrderCriteria.then().assertThat()
.statusCode(BAD_REQUEST.getStatusCode())
.body("message", equalTo("Invalid order criteria: " + invalidOrderCriteria));
}
}

0 comments on commit 1ff9d90

Please sign in to comment.