Skip to content

Commit 458042c

Browse files
committed
add dvObject display name to json
1 parent cf690d3 commit 458042c

File tree

2 files changed

+88
-4
lines changed

2 files changed

+88
-4
lines changed

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1503,17 +1503,22 @@ public static JsonObjectBuilder json(DataverseFeaturedItem dataverseFeaturedItem
15031503

15041504
DvObject dvObject = dataverseFeaturedItem.getDvObject();
15051505
if (dvObject != null) {
1506-
String identifier;
1506+
String identifier = null;
1507+
String displayName = null;
15071508

15081509
if (dvObject.isInstanceofDataverse()) {
15091510
identifier = ((Dataverse) dvObject).getAlias();
1510-
} else if (dvObject.getGlobalId() != null) {
1511-
identifier = dvObject.getGlobalId().asString();
1512-
} else {
1511+
displayName = ((Dataverse) dvObject).getName();
1512+
} else if (dvObject.isInstanceofDataset()) {
1513+
identifier = dvObject.getGlobalId() != null ? dvObject.getGlobalId().asString() : String.valueOf(dvObject.getId());
1514+
displayName = ((Dataset) dvObject).getCurrentName();
1515+
} else if (dvObject.isInstanceofDataFile()) {
15131516
identifier = String.valueOf(dvObject.getId());
1517+
displayName = ((DataFile) dvObject).getDisplayName();
15141518
}
15151519

15161520
job.add("dvObjectIdentifier", identifier);
1521+
job.add("dvObjectDisplayName", displayName);
15171522
}
15181523
return job;
15191524
}

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

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@
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.dataverse.featured.DataverseFeaturedItem;
89
import edu.harvard.iq.dataverse.mocks.MockDatasetFieldSvc;
10+
import edu.harvard.iq.dataverse.pidproviders.doi.AbstractDOIProvider;
911
import edu.harvard.iq.dataverse.privateurl.PrivateUrl;
1012
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
1113
import edu.harvard.iq.dataverse.UserNotification.Type;
1214

15+
import java.sql.Timestamp;
16+
import java.time.Instant;
1317
import java.time.LocalDate;
1418
import java.util.ArrayList;
1519
import java.util.Arrays;
@@ -405,4 +409,79 @@ public void testMetadataBlockAnonymized() {
405409
assertEquals("primitive", actualAuthorJsonObject.getString("typeClass"));
406410
assertFalse(actualAuthorJsonObject.getBoolean("multiple"));
407411
}
412+
413+
@Test
414+
public void testDataverseFeaturedItemDataverseTest() {
415+
Dataverse dataverse = createDataverse(42);
416+
DvObject dvObject = createDataverse(1);
417+
418+
DataverseFeaturedItem fi = new DataverseFeaturedItem();
419+
fi.setDataverse(dataverse);
420+
fi.setContent(null);
421+
fi.setDisplayOrder(0);
422+
fi.setImageFileName("testfile");
423+
424+
fi.setDvObject("dataverse", dvObject);
425+
JsonObjectBuilder jsonObject = JsonPrinter.json(fi);
426+
427+
assertNotNull(jsonObject);
428+
}
429+
@Test
430+
public void testDataverseFeaturedItemDatasetTest() {
431+
Dataverse dataverse = createDataverse(42);
432+
DvObject dvObject = createDataset(1);
433+
434+
DataverseFeaturedItem fi = new DataverseFeaturedItem();
435+
fi.setDataverse(dataverse);
436+
fi.setContent(null);
437+
fi.setDisplayOrder(0);
438+
fi.setImageFileName("testfile");
439+
440+
fi.setDvObject("dataset", dvObject);
441+
JsonObject jsonObject = JsonPrinter.json(fi).build();
442+
assertNotNull(jsonObject);
443+
444+
System.out.println("json: " + JsonUtil.prettyPrint(jsonObject.toString()));
445+
assertEquals("doi:10.5072/FK2/BYM3IW", jsonObject.getString("dvObjectIdentifier"));
446+
assertEquals("Dataset Tile 1", jsonObject.getString("dvObjectDisplayName"));
447+
448+
assertNotNull(jsonObject);
449+
}
450+
451+
private Dataverse createDataverse(long id) {
452+
Dataverse dataverse = new Dataverse();
453+
dataverse.setId(id);
454+
dataverse.setAlias("dv" + id);
455+
dataverse.setName("Dataverse " + id);
456+
dataverse.setAffiliation(id + " Inc.");
457+
dataverse.setDescription("Description for Dataverse " + id + ".");
458+
dataverse.setPublicationDate(Timestamp.from(Instant.now()));
459+
return dataverse;
460+
}
461+
private Dataset createDataset(long id) {
462+
Dataset dataset = new Dataset();
463+
DatasetVersion dsVersion = new DatasetVersion();
464+
dsVersion.setDataset(dataset);
465+
dsVersion.setVersion(1L);
466+
List<DatasetField> dsFields = new ArrayList<>();
467+
DatasetField titleField = new DatasetField();
468+
DatasetFieldType dsft = new DatasetFieldType();
469+
DatasetFieldValue dsfv = new DatasetFieldValue();
470+
dsfv.setValue("Dataset Tile " + id);
471+
dsfv.setDatasetField(titleField);
472+
dsft.setName(DatasetFieldConstant.title);
473+
dsft.setFieldType(FieldType.TEXT);
474+
titleField.setDatasetFieldType(dsft);
475+
titleField.setDatasetFieldValues(List.of(dsfv));
476+
dsFields.add(titleField);
477+
dsVersion.setDatasetFields(dsFields);
478+
dsVersion.setVersionState(DatasetVersion.VersionState.RELEASED);
479+
dataset.setId(id);
480+
481+
dataset.setVersions(List.of(dsVersion));
482+
dataset.setPublicationDate(Timestamp.from(Instant.now()));
483+
dataset.setGlobalId(new GlobalId(AbstractDOIProvider.DOI_PROTOCOL,"10.5072","FK2/BYM3IW", "/", AbstractDOIProvider.DOI_RESOLVER_URL, null));
484+
485+
return dataset;
486+
}
408487
}

0 commit comments

Comments
 (0)