Add support for custom violation exceptions

This commit is contained in:
René Pfeuffer
2018-11-20 11:04:30 +01:00
parent 51c9a4dbb2
commit b9458f47e9
6 changed files with 166 additions and 6 deletions

View File

@@ -0,0 +1,30 @@
package sonia.scm.api.v2;
import org.jboss.resteasy.api.validation.ResteasyViolationException;
import sonia.scm.api.v2.resources.ResteasyViolationExceptionToErrorDtoMapper;
import javax.inject.Inject;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
public class ResteasyValidationExceptionMapper implements ExceptionMapper<ResteasyViolationException> {
private final ResteasyViolationExceptionToErrorDtoMapper mapper;
@Inject
public ResteasyValidationExceptionMapper(ResteasyViolationExceptionToErrorDtoMapper mapper) {
this.mapper = mapper;
}
@Override
public Response toResponse(ResteasyViolationException exception) {
return Response
.status(Response.Status.BAD_REQUEST)
.type(MediaType.APPLICATION_JSON_TYPE)
.entity(mapper.map(exception))
.build();
}
}