Skip to content

Commit c1acf33

Browse files
committed
#8184 add endpoints for get by token
1 parent 9a1a0d8 commit c1acf33

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/main/java/edu/harvard/iq/dataverse/api/Datasets.java

+39
Original file line numberDiff line numberDiff line change
@@ -4876,6 +4876,33 @@ public Response getPrivateUrlDatasetVersion(@PathParam("privateUrlToken") String
48764876
}
48774877
return ok(responseJson);
48784878
}
4879+
4880+
@GET
4881+
@Path("previewUrlDatasetVersion/{previewUrlToken}")
4882+
public Response getPreviewUrlDatasetVersion(@PathParam("previewUrlToken") String previewUrlToken, @QueryParam("returnOwners") boolean returnOwners) {
4883+
PrivateUrlUser privateUrlUser = privateUrlService.getPrivateUrlUserFromToken(previewUrlToken);
4884+
if (privateUrlUser == null) {
4885+
return notFound("Private URL user not found");
4886+
}
4887+
boolean isAnonymizedAccess = privateUrlUser.hasAnonymizedAccess();
4888+
String anonymizedFieldTypeNames = settingsSvc.getValueForKey(SettingsServiceBean.Key.AnonymizedFieldTypeNames);
4889+
if(isAnonymizedAccess && anonymizedFieldTypeNames == null) {
4890+
throw new NotAcceptableException("Anonymized Access not enabled");
4891+
}
4892+
DatasetVersion dsv = privateUrlService.getDraftDatasetVersionFromToken(previewUrlToken);
4893+
if (dsv == null || dsv.getId() == null) {
4894+
return notFound("Dataset version not found");
4895+
}
4896+
JsonObjectBuilder responseJson;
4897+
if (isAnonymizedAccess) {
4898+
List<String> anonymizedFieldTypeNamesList = new ArrayList<>(Arrays.asList(anonymizedFieldTypeNames.split(",\\s")));
4899+
responseJson = json(dsv, anonymizedFieldTypeNamesList, true, returnOwners);
4900+
} else {
4901+
responseJson = json(dsv, null, true, returnOwners);
4902+
}
4903+
return ok(responseJson);
4904+
}
4905+
48794906

48804907
@GET
48814908
@Path("privateUrlDatasetVersion/{privateUrlToken}/citation")
@@ -4888,6 +4915,18 @@ public Response getPrivateUrlDatasetVersionCitation(@PathParam("privateUrlToken"
48884915
return (dsv == null || dsv.getId() == null) ? notFound("Dataset version not found")
48894916
: ok(dsv.getCitation(true, privateUrlUser.hasAnonymizedAccess()));
48904917
}
4918+
4919+
@GET
4920+
@Path("previewUrlDatasetVersion/{previewUrlToken}/citation")
4921+
public Response getPreviewUrlDatasetVersionCitation(@PathParam("previewUrlToken") String previewUrlToken) {
4922+
PrivateUrlUser privateUrlUser = privateUrlService.getPrivateUrlUserFromToken(previewUrlToken);
4923+
if (privateUrlUser == null) {
4924+
return notFound("Private URL user not found");
4925+
}
4926+
DatasetVersion dsv = privateUrlService.getDraftDatasetVersionFromToken(previewUrlToken);
4927+
return (dsv == null || dsv.getId() == null) ? notFound("Dataset version not found")
4928+
: ok(dsv.getCitation(true, privateUrlUser.hasAnonymizedAccess()));
4929+
}
48914930

48924931
@GET
48934932
@AuthRequired

0 commit comments

Comments
 (0)