
pl.allegro.tech.hermes.management.api.mappers.ConstraintViolationMapper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hermes-management Show documentation
Show all versions of hermes-management Show documentation
Fast and reliable message broker built on top of Kafka.
package pl.allegro.tech.hermes.management.api.mappers;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import jakarta.validation.ConstraintViolationException;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.ext.Provider;
import java.util.List;
import org.glassfish.jersey.server.validation.ValidationErrorData;
import org.glassfish.jersey.server.validation.internal.ValidationHelper;
import pl.allegro.tech.hermes.api.ErrorCode;
@Provider
public class ConstraintViolationMapper
extends AbstractExceptionMapper {
@Override
Response.Status httpStatus() {
return Response.Status.BAD_REQUEST;
}
@Override
ErrorCode errorCode() {
return ErrorCode.VALIDATION_ERROR;
}
@Override
public String errorMessage(ConstraintViolationException exception) {
return prepareMessage(exception);
}
private String prepareMessage(ConstraintViolationException ex) {
List errors =
Lists.transform(
ValidationHelper.constraintViolationToValidationErrors(ex),
new ValidationErrorDataConverter());
return Joiner.on("; ").join(errors);
}
private static final class ValidationErrorDataConverter
implements Function {
@Override
public String apply(ValidationErrorData input) {
return input.getPath() + " " + input.getMessage();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy