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 sonia.scm.ScmConstraintViolationException;
import sonia.scm.api.v2.resources.ScmViolationExceptionToErrorDtoMapper;
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 ScmConstraintValidationExceptionMapper implements ExceptionMapper<ScmConstraintViolationException> {
private final ScmViolationExceptionToErrorDtoMapper mapper;
@Inject
public ScmConstraintValidationExceptionMapper(ScmViolationExceptionToErrorDtoMapper mapper) {
this.mapper = mapper;
}
@Override
public Response toResponse(ScmConstraintViolationException exception) {
return Response
.status(Response.Status.BAD_REQUEST)
.type(MediaType.APPLICATION_JSON_TYPE)
.entity(mapper.map(exception))
.build();
}
}