Skip to content

Commit

Permalink
#8184 add endpoints for get by token
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed Oct 22, 2024
1 parent 9a1a0d8 commit c1acf33
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/api/Datasets.java
Original file line number Diff line number Diff line change
Expand Up @@ -4876,6 +4876,33 @@ public Response getPrivateUrlDatasetVersion(@PathParam("privateUrlToken") String
}
return ok(responseJson);
}

@GET
@Path("previewUrlDatasetVersion/{previewUrlToken}")
public Response getPreviewUrlDatasetVersion(@PathParam("previewUrlToken") String previewUrlToken, @QueryParam("returnOwners") boolean returnOwners) {
PrivateUrlUser privateUrlUser = privateUrlService.getPrivateUrlUserFromToken(previewUrlToken);
if (privateUrlUser == null) {
return notFound("Private URL user not found");
}
boolean isAnonymizedAccess = privateUrlUser.hasAnonymizedAccess();
String anonymizedFieldTypeNames = settingsSvc.getValueForKey(SettingsServiceBean.Key.AnonymizedFieldTypeNames);
if(isAnonymizedAccess && anonymizedFieldTypeNames == null) {
throw new NotAcceptableException("Anonymized Access not enabled");
}
DatasetVersion dsv = privateUrlService.getDraftDatasetVersionFromToken(previewUrlToken);
if (dsv == null || dsv.getId() == null) {
return notFound("Dataset version not found");
}
JsonObjectBuilder responseJson;
if (isAnonymizedAccess) {
List<String> anonymizedFieldTypeNamesList = new ArrayList<>(Arrays.asList(anonymizedFieldTypeNames.split(",\\s")));
responseJson = json(dsv, anonymizedFieldTypeNamesList, true, returnOwners);
} else {
responseJson = json(dsv, null, true, returnOwners);
}
return ok(responseJson);
}


@GET
@Path("privateUrlDatasetVersion/{privateUrlToken}/citation")
Expand All @@ -4888,6 +4915,18 @@ public Response getPrivateUrlDatasetVersionCitation(@PathParam("privateUrlToken"
return (dsv == null || dsv.getId() == null) ? notFound("Dataset version not found")
: ok(dsv.getCitation(true, privateUrlUser.hasAnonymizedAccess()));
}

@GET
@Path("previewUrlDatasetVersion/{previewUrlToken}/citation")
public Response getPreviewUrlDatasetVersionCitation(@PathParam("previewUrlToken") String previewUrlToken) {
PrivateUrlUser privateUrlUser = privateUrlService.getPrivateUrlUserFromToken(previewUrlToken);
if (privateUrlUser == null) {
return notFound("Private URL user not found");
}
DatasetVersion dsv = privateUrlService.getDraftDatasetVersionFromToken(previewUrlToken);
return (dsv == null || dsv.getId() == null) ? notFound("Dataset version not found")
: ok(dsv.getCitation(true, privateUrlUser.hasAnonymizedAccess()));
}

@GET
@AuthRequired
Expand Down

0 comments on commit c1acf33

Please sign in to comment.