Skip to content
Prev Previous commit
Merge branch 'develop' of github.com:IQSS/dataverse into 10001-datase…
…t-api-user-permissions
  • Loading branch information
GPortas committed Oct 20, 2023
commit 5cd667939fb50015a3f66052b5a2e488cdecafe7
16 changes: 12 additions & 4 deletions src/main/java/edu/harvard/iq/dataverse/api/Datasets.java
Original file line number Diff line number Diff line change
Expand Up @@ -472,9 +472,9 @@ public Response useDefaultCitationDate(@Context ContainerRequestContext crc, @Pa
@AuthRequired
@Path("{id}/versions")
public Response listVersions(@Context ContainerRequestContext crc, @PathParam("id") String id, @QueryParam("includeFiles") Boolean includeFiles, @QueryParam("limit") Integer limit, @QueryParam("offset") Integer offset) {

return response( req -> {
Dataset dataset = findDatasetOrDie(id);
Dataset dataset = findDatasetOrDie(id);

return ok( execCommand( new ListVersionsCommand(req, dataset, offset, limit, (includeFiles == null ? true : includeFiles)) )
.stream()
Expand All @@ -489,13 +489,21 @@ public Response listVersions(@Context ContainerRequestContext crc, @PathParam("i
public Response getVersion(@Context ContainerRequestContext crc,
@PathParam("id") String datasetId,
@PathParam("versionId") String versionId,
@QueryParam("includeFiles") Boolean includeFiles,
@QueryParam("includeDeaccessioned") boolean includeDeaccessioned,
@Context UriInfo uriInfo,
@Context HttpHeaders headers) {
return response( req -> {
DatasetVersion dsv = getDatasetVersionOrDie(req, versionId, findDatasetOrDie(datasetId), uriInfo, headers, includeDeaccessioned);
return (dsv == null || dsv.getId() == null) ? notFound("Dataset version not found")
: ok(json(dsv));

if (dsv == null || dsv.getId() == null) {
return notFound("Dataset version not found");
}

if (includeFiles == null ? true : includeFiles) {
dsv = datasetversionService.findDeep(dsv.getId());
}
return ok(json(dsv, includeFiles == null ? true : includeFiles));
}, getRequestUser(crc));
}

Expand Down
8 changes: 4 additions & 4 deletions src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ public void testCreatePublishDestroyDataset() {
assertTrue(datasetContactFromExport.toString().contains("finch@mailinator.com"));
assertTrue(firstValue.toString().contains("finch@mailinator.com"));

Response getDatasetVersion = UtilIT.getDatasetVersion(datasetPersistentId, DS_VERSION_LATEST_PUBLISHED, false, apiToken);
Response getDatasetVersion = UtilIT.getDatasetVersion(datasetPersistentId, DS_VERSION_LATEST_PUBLISHED, apiToken);
getDatasetVersion.prettyPrint();
getDatasetVersion.then().assertThat()
.body("data.datasetId", equalTo(datasetId))
Expand Down Expand Up @@ -554,11 +554,11 @@ public void testCreatePublishDestroyDataset() {
deaccessionDatasetResponse.then().assertThat().statusCode(OK.getStatusCode());

// includeDeaccessioned false
getDatasetVersion = UtilIT.getDatasetVersion(datasetPersistentId, DS_VERSION_LATEST_PUBLISHED, false, apiToken);
getDatasetVersion = UtilIT.getDatasetVersion(datasetPersistentId, DS_VERSION_LATEST_PUBLISHED, apiToken, false, false);
getDatasetVersion.then().assertThat().statusCode(NOT_FOUND.getStatusCode());

// includeDeaccessioned true
getDatasetVersion = UtilIT.getDatasetVersion(datasetPersistentId, DS_VERSION_LATEST_PUBLISHED, true, apiToken);
getDatasetVersion = UtilIT.getDatasetVersion(datasetPersistentId, DS_VERSION_LATEST_PUBLISHED, apiToken, false, true);
getDatasetVersion.then().assertThat().statusCode(OK.getStatusCode());

Response deleteDatasetResponse = UtilIT.destroyDataset(datasetId, apiToken);
Expand Down Expand Up @@ -615,7 +615,7 @@ public void testDatasetVersionsAPI() {
// Now check that the file is NOT shown, when we ask the versions api to
// skip files:
boolean skipFiles = true;
unpublishedDraft = UtilIT.getDatasetVersion(datasetPid, ":draft", apiToken, skipFiles);
unpublishedDraft = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, apiToken, skipFiles, false);
unpublishedDraft.prettyPrint();
unpublishedDraft.then().assertThat()
.body("data.files", equalTo(null))
Expand Down
8 changes: 4 additions & 4 deletions src/test/java/edu/harvard/iq/dataverse/api/FilesIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -1989,14 +1989,14 @@ public void testDeleteFile() {
deleteResponse2.then().assertThat().statusCode(OK.getStatusCode());

// Check file 2 deleted from post v1.0 draft
Response postv1draft = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, false, apiToken);
Response postv1draft = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, apiToken);
postv1draft.prettyPrint();
postv1draft.then().assertThat()
.body("data.files.size()", equalTo(1))
.statusCode(OK.getStatusCode());

// Check file 2 still in v1.0
Response v1 = UtilIT.getDatasetVersion(datasetPid, "1.0", false, apiToken);
Response v1 = UtilIT.getDatasetVersion(datasetPid, "1.0", apiToken);
v1.prettyPrint();
v1.then().assertThat()
.body("data.files[0].dataFile.filename", equalTo("cc0.png"))
Expand All @@ -2011,7 +2011,7 @@ public void testDeleteFile() {
downloadResponse2.then().assertThat().statusCode(OK.getStatusCode());

// Check file 3 still in post v1.0 draft
Response postv1draft2 = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, false, apiToken);
Response postv1draft2 = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, apiToken);
postv1draft2.prettyPrint();
postv1draft2.then().assertThat()
.body("data.files[0].dataFile.filename", equalTo("orcid_16x16.png"))
Expand All @@ -2026,7 +2026,7 @@ public void testDeleteFile() {
deleteResponse3.then().assertThat().statusCode(OK.getStatusCode());

// Check file 3 deleted from post v1.0 draft
Response postv1draft3 = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, false, apiToken);
Response postv1draft3 = UtilIT.getDatasetVersion(datasetPid, DS_VERSION_DRAFT, apiToken);
postv1draft3.prettyPrint();
postv1draft3.then().assertThat()
.body("data.files[0]", equalTo(null))
Expand Down
34 changes: 21 additions & 13 deletions src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@ public static Response createRandomUser() {

return createRandomUser("user");
}

/**
* A convenience method for creating a random test user, when all you need
* is the api token.
* A convenience method for creating a random test user, when all you need
* is the api token.
* @return apiToken
*/
public static String createRandomUserGetToken(){
Response createUser = createRandomUser();
Response createUser = createRandomUser();
return getApiTokenFromResponse(createUser);
}

Expand Down Expand Up @@ -377,15 +377,15 @@ static Response createRandomDataverse(String apiToken) {
String category = null;
return createDataverse(alias, category, apiToken);
}

/**
* A convenience method for creating a random collection and getting its
* alias in one step.
* A convenience method for creating a random collection and getting its
* alias in one step.
* @param apiToken
* @return alias
*/
static String createRandomCollectionGetAlias(String apiToken){

Response createCollectionResponse = createRandomDataverse(apiToken);
//createDataverseResponse.prettyPrint();
createCollectionResponse.then().assertThat().statusCode(CREATED.getStatusCode());
Expand Down Expand Up @@ -1433,11 +1433,19 @@ static Response nativeGetUsingPersistentId(String persistentId, String apiToken)
return response;
}

static Response getDatasetVersion(String persistentId, String versionNumber, boolean includeDeaccessioned, String apiToken) {
static Response getDatasetVersion(String persistentId, String versionNumber, String apiToken) {
return getDatasetVersion(persistentId, versionNumber, apiToken, false, false);
}

static Response getDatasetVersion(String persistentId, String versionNumber, String apiToken, boolean skipFiles, boolean includeDeaccessioned) {
return given()
.header(API_TOKEN_HTTP_HEADER, apiToken)
.queryParam("includeDeaccessioned", includeDeaccessioned)
.get("/api/datasets/:persistentId/versions/" + versionNumber + "?persistentId=" + persistentId);
.get("/api/datasets/:persistentId/versions/"
+ versionNumber
+ "?persistentId="
+ persistentId
+ (skipFiles ? "&includeFiles=false" : ""));
}

static Response getMetadataBlockFromDatasetVersion(String persistentId, String versionNumber, String metadataBlock, String apiToken) {
Expand Down Expand Up @@ -1801,15 +1809,15 @@ static Response removeDatasetThumbnail(String datasetPersistentId, String apiTok
static Response getDatasetVersions(String idOrPersistentId, String apiToken) {
return getDatasetVersions(idOrPersistentId, apiToken, false);
}

static Response getDatasetVersions(String idOrPersistentId, String apiToken, boolean skipFiles) {
return getDatasetVersions(idOrPersistentId, apiToken, null, null, skipFiles);
}

static Response getDatasetVersions(String idOrPersistentId, String apiToken, Integer offset, Integer limit) {
return getDatasetVersions(idOrPersistentId, apiToken, offset, limit, false);
}

static Response getDatasetVersions(String idOrPersistentId, String apiToken, Integer offset, Integer limit, boolean skipFiles) {
logger.info("Getting Dataset Versions");
String idInPath = idOrPersistentId; // Assume it's a number.
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.