Skip to content

Commit 26a7c19

Browse files
authored
Merge pull request #11464 from IQSS/11438-fix-file-version-summary
Fix File Version Summary API
2 parents ac30566 + 07f9f38 commit 26a7c19

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### File Version Summary Bug fix
2+
3+
Fixes an issue where the deaccessionedReason was missing in the fileDifferenceSummary json object returned by API GET "$SERVER_URL/api/files/{ID}/versionDifferences"

src/main/java/edu/harvard/iq/dataverse/FileMetadataVersionsHelper.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,27 +78,20 @@ public JsonObjectBuilder jsonDataFileVersions(FileMetadata fileMetadata) {
7878
.add("versionState", fileMetadata.getDatasetVersion().getVersionState().name())
7979
.add("summary", fileMetadata.getDatasetVersion().getVersionNote())
8080
.add("contributors", fileMetadata.getContributorNames())
81+
.add("publishedDate", fileMetadata.getDataFile().getPublicationDate() != null ? fileMetadata.getDataFile().getPublicationDate().toString() : null)
8182
;
8283
}
8384
if (fileMetadata.getDataFile() != null) {
8485
job.add("datafileId", fileMetadata.getDataFile().getId());
8586
job.add("persistentId", (fileMetadata.getDataFile().getGlobalId() != null ? fileMetadata.getDataFile().getGlobalId().asString() : ""));
86-
if (fileMetadata.getDataFile().getPublicationDate() != null) {
87-
job.add("publishedDate", fileMetadata.getDataFile().getPublicationDate().toString());
88-
}
8987
}
9088
FileVersionDifference fvd = fileMetadata.getFileVersionDifference();
9189
if (fvd != null) {
9290
List<FileVersionDifference.FileDifferenceSummaryGroup> groups = fvd.getDifferenceSummaryGroups();
93-
JsonObjectBuilder fileDifferenceSummary = jsonObjectBuilder();
94-
95-
if (fileMetadata.getDatasetVersion().isDeaccessioned() && fileMetadata.getDatasetVersion().getVersionNote() != null) {
96-
fileDifferenceSummary.add("deaccessionedReason", fileMetadata.getDatasetVersion().getVersionNote());
97-
}
98-
String fileAction = getFileAction(fvd.getOriginalFileMetadata(), fvd.getNewFileMetadata());
99-
if (fileAction != null) {
100-
fileDifferenceSummary.add("file", fileAction);
101-
}
91+
JsonObjectBuilder fileDifferenceSummary = jsonObjectBuilder()
92+
.add("versionNote", fileMetadata.getDatasetVersion().getVersionNote())
93+
.add("deaccessionedReason", fileMetadata.getDatasetVersion().getDeaccessionNote())
94+
.add("file", getFileAction(fvd.getOriginalFileMetadata(), fvd.getNewFileMetadata()));
10295

10396
if (groups != null && !groups.isEmpty()) {
10497
List<FileVersionDifference.FileDifferenceSummaryGroup> sortedGroups = groups.stream()

src/test/java/edu/harvard/iq/dataverse/api/FilesIT.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1551,6 +1551,18 @@ public void GetFileVersionDifferences() {
15511551
.body("data[1].fileDifferenceSummary.file", equalTo("Added"))
15521552
.body("data[1].datafileId", equalTo(Integer.parseInt(dataFileId)))
15531553
.statusCode(OK.getStatusCode());
1554+
1555+
// The following tests cover cases where the dataset version is deaccessioned
1556+
Response deaccessionDatasetResponse = UtilIT.deaccessionDataset(datasetId, "1.0", "Test reason", null, superUserApiToken);
1557+
deaccessionDatasetResponse.then().assertThat().statusCode(OK.getStatusCode());
1558+
getFileDataResponse = UtilIT.getFileVersionDifferences(replacedDataFileId, regularApiToken);
1559+
getFileDataResponse.prettyPrint();
1560+
getFileDataResponse.then().assertThat()
1561+
.body("status", equalTo("OK"))
1562+
.body("data[1].datasetVersion", equalTo("1.0"))
1563+
.body("data[1].fileDifferenceSummary.deaccessionedReason", equalTo("Test reason"))
1564+
.body("data[1].fileDifferenceSummary.file", equalTo("Added"))
1565+
.statusCode(OK.getStatusCode());
15541566
}
15551567
@Test
15561568
public void testGetFileInfo() {

0 commit comments

Comments
 (0)