From 97142fdde8ce029e9911eb9ddc05e151047841af Mon Sep 17 00:00:00 2001 From: catbref Date: Thu, 4 Apr 2019 12:30:28 +0100 Subject: [PATCH] Return HTTP 400 code with useful message when a ParamException occurs from API call. --- src/main/java/org/qora/api/resource/ApiExceptionMapper.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/qora/api/resource/ApiExceptionMapper.java b/src/main/java/org/qora/api/resource/ApiExceptionMapper.java index be111705..dd24c1f7 100644 --- a/src/main/java/org/qora/api/resource/ApiExceptionMapper.java +++ b/src/main/java/org/qora/api/resource/ApiExceptionMapper.java @@ -10,6 +10,7 @@ import javax.ws.rs.ext.Provider; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.glassfish.jersey.server.ParamException; @Provider public class ApiExceptionMapper implements ExceptionMapper { @@ -26,6 +27,11 @@ public class ApiExceptionMapper implements ExceptionMapper { public Response toResponse(RuntimeException e) { LOGGER.info(String.format("Exception %s during API call: %s", e.getClass().getCanonicalName(), request.getRequestURI())); + if (e instanceof ParamException) { + ParamException pe = (ParamException) e; + return Response.status(Response.Status.BAD_REQUEST).entity("Bad parameter \"" + pe.getParameterName() + "\"").build(); + } + if (e instanceof WebApplicationException) return ((WebApplicationException) e).getResponse();