Skip to content

Commit 2267ef0

Browse files
authored
Merge pull request #11589 from poikilotherm/11573-print-datasettype
Add datasetType to JSON serialization of DatasetVersion
2 parents 54f19d9 + cce40c4 commit 2267ef0

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

doc/sphinx-guides/source/api/native-api.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,6 +1583,9 @@ The fully expanded example above (without environment variables) looks like this
15831583
15841584
curl "https://demo.dataverse.org/api/datasets/24/versions/1.0?excludeFiles=false"
15851585
1586+
Note: the data object will contain the fields ``datasetId``, ``datasetPersistentId`` (since `4.18 <https://github.com/IQSS/dataverse/issues/6397>`_) and ``datasetType`` (since `6.7 <https://github.com/IQSS/dataverse/issues/11573>`_).
1587+
All of these fields are equal and constant for all versions of a dataset.
1588+
15861589
The optional ``excludeFiles`` parameter specifies whether the files should be listed in the output (defaults to ``true``). Note that a separate ``/files`` API can be used for listing the files, or a subset thereof in a given version.
15871590

15881591
.. code-block:: bash

src/main/java/edu/harvard/iq/dataverse/util/json/JsonPrinter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ public static JsonObjectBuilder json(DatasetVersion dsv, List<String> anonymized
474474
JsonObjectBuilder bld = jsonObjectBuilder()
475475
.add("id", dsv.getId()).add("datasetId", dataset.getId())
476476
.add("datasetPersistentId", dataset.getGlobalId().asString())
477+
.add("datasetType", dataset.getDatasetType().getName())
477478
.add("storageIdentifier", dataset.getStorageIdentifier())
478479
.add("versionNumber", dsv.getVersionNumber())
479480
.add("internalVersionNumber", dsv.getVersion())

src/test/java/edu/harvard/iq/dataverse/util/json/JsonPrinterTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import edu.harvard.iq.dataverse.authorization.DataverseRole;
66
import edu.harvard.iq.dataverse.authorization.RoleAssignee;
77
import edu.harvard.iq.dataverse.authorization.users.PrivateUrlUser;
8+
import edu.harvard.iq.dataverse.dataset.DatasetType;
89
import edu.harvard.iq.dataverse.dataverse.featured.DataverseFeaturedItem;
910
import edu.harvard.iq.dataverse.mocks.MockDatasetFieldSvc;
1011
import edu.harvard.iq.dataverse.pidproviders.doi.AbstractDOIProvider;
@@ -477,6 +478,22 @@ public void testDataverseFeaturedItemDatafileTest() {
477478

478479
assertNotNull(jsonObject);
479480
}
481+
482+
@Test
483+
public void testDatasetWithNondefaultType() {
484+
String sut = "foobar";
485+
DatasetType foobar = new DatasetType();
486+
foobar.setName(sut);
487+
488+
Dataset dataset = createDataset(42);
489+
dataset.setDatasetType(foobar);
490+
491+
var jsob = JsonPrinter.json(dataset.getLatestVersion(), false, false).build();
492+
String result = jsob.getString("datasetType");
493+
494+
assertNotNull(result);
495+
assertEquals(sut, result);
496+
}
480497

481498
private Dataverse createDataverse(long id) {
482499
Dataverse dataverse = new Dataverse();
@@ -506,6 +523,7 @@ private Dataset createDataset(long id) {
506523
dsFields.add(titleField);
507524
dsVersion.setDatasetFields(dsFields);
508525
dsVersion.setVersionState(DatasetVersion.VersionState.RELEASED);
526+
dsVersion.setTermsOfUseAndAccess(new TermsOfUseAndAccess());
509527
dataset.setId(id);
510528

511529
dataset.setVersions(List.of(dsVersion));

0 commit comments

Comments
 (0)