Skip to content

Commit

Permalink
more descriptive error on bad API token than "ERROR" #5093
Browse files Browse the repository at this point in the history
  • Loading branch information
pdurbin committed Jun 4, 2020
1 parent c1be93f commit 7821ac7
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 25 deletions.
51 changes: 26 additions & 25 deletions src/main/java/edu/harvard/iq/dataverse/api/Pids.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ public Response getPid(@QueryParam("persistentId") String persistentId) {
if (!user.isSuperuser()) {
return error(Response.Status.FORBIDDEN, BundleUtil.getStringFromBundle("admin.api.auth.mustBeSuperUser"));
}
String baseUrl = System.getProperty("doi.baseurlstringnext");
String username = System.getProperty("doi.username");
String password = System.getProperty("doi.password");
JsonObjectBuilder result = PidUtil.queryDoi(persistentId, baseUrl, username, password);
return ok(result);
} catch (WrappedResponse ex) {
return error(Response.Status.BAD_REQUEST, ex.getLocalizedMessage());
return error(Response.Status.FORBIDDEN, BundleUtil.getStringFromBundle("api.errors.invalidApiToken"));
}
String baseUrl = System.getProperty("doi.baseurlstringnext");
String username = System.getProperty("doi.username");
String password = System.getProperty("doi.password");
JsonObjectBuilder result = PidUtil.queryDoi(persistentId, baseUrl, username, password);
return ok(result);
}

@GET
Expand All @@ -61,27 +61,28 @@ public Response getUnreserved(@QueryParam("persistentId") String persistentId) {
if (!user.isSuperuser()) {
return error(Response.Status.FORBIDDEN, BundleUtil.getStringFromBundle("admin.api.auth.mustBeSuperUser"));
}
JsonArrayBuilder unreserved = Json.createArrayBuilder();
for (Dataset dataset : datasetSvc.findAll()) {
if (dataset.isReleased()) {
continue;
}
if (dataset.getGlobalIdCreateTime() == null) {
unreserved.add(Json.createObjectBuilder()
.add("id", dataset.getId())
.add("pid", dataset.getGlobalId().asString())
);
}
}
JsonArray finalUnreserved = unreserved.build();
int size = finalUnreserved.size();
return ok(Json.createObjectBuilder()
.add("numUnreserved", size)
.add("count", finalUnreserved)
);
} catch (WrappedResponse ex) {
return error(Response.Status.BAD_REQUEST, ex.getLocalizedMessage());
return error(Response.Status.FORBIDDEN, BundleUtil.getStringFromBundle("api.errors.invalidApiToken"));
}

JsonArrayBuilder unreserved = Json.createArrayBuilder();
for (Dataset dataset : datasetSvc.findAll()) {
if (dataset.isReleased()) {
continue;
}
if (dataset.getGlobalIdCreateTime() == null) {
unreserved.add(Json.createObjectBuilder()
.add("id", dataset.getId())
.add("pid", dataset.getGlobalId().asString())
);
}
}
JsonArray finalUnreserved = unreserved.build();
int size = finalUnreserved.size();
return ok(Json.createObjectBuilder()
.add("numUnreserved", size)
.add("count", finalUnreserved)
);
}

@POST
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/propertyFiles/Bundle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2527,3 +2527,6 @@ pids.datacite.errors.DoiOnly=Only doi: is supported.

#PublishDatasetCommand
publishDatasetCommand.pidNotReserved=Cannot publish dataset because its persistent identifier has not been reserved.

# APIs
api.errors.invalidApiToken=Invalid API token.

0 comments on commit 7821ac7

Please sign in to comment.