From 9bf802c095892a385f20a14d135d324e64e4e3f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Fri, 7 Dec 2018 14:36:56 +0100 Subject: [PATCH] Map not supported media type exceptions --- .../scm/api/NotSupportedExceptionMapper.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 scm-webapp/src/main/java/sonia/scm/api/NotSupportedExceptionMapper.java diff --git a/scm-webapp/src/main/java/sonia/scm/api/NotSupportedExceptionMapper.java b/scm-webapp/src/main/java/sonia/scm/api/NotSupportedExceptionMapper.java new file mode 100644 index 0000000000..33e1e368d7 --- /dev/null +++ b/scm-webapp/src/main/java/sonia/scm/api/NotSupportedExceptionMapper.java @@ -0,0 +1,31 @@ +package sonia.scm.api; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; +import sonia.scm.api.v2.resources.ErrorDto; +import sonia.scm.web.VndMediaType; + +import javax.ws.rs.NotSupportedException; +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +@Provider +public class NotSupportedExceptionMapper implements ExceptionMapper { + + private static final Logger LOG = LoggerFactory.getLogger(NotSupportedExceptionMapper.class); + + @Override + public Response toResponse(NotSupportedException exception) { + LOG.debug("illegal media type"); + ErrorDto error = new ErrorDto(); + error.setTransactionId(MDC.get("transaction_id")); + error.setMessage("illegal media type"); + error.setErrorCode("8pRBYDURx1"); + return Response.status(Response.Status.UNSUPPORTED_MEDIA_TYPE) + .entity(error) + .type(VndMediaType.ERROR_TYPE) + .build(); + } +}