TariffV2PricingConstraintValidator.java
package com.github.jenkaby.bikerental.tariff.web.command.validation;
import com.github.jenkaby.bikerental.tariff.web.command.dto.TariffV2Request;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class TariffV2PricingConstraintValidator implements ConstraintValidator<ValidTariffV2Pricing, TariffV2Request> {
private final TariffV2PricingValidator delegate;
@Override
public boolean isValid(TariffV2Request req, ConstraintValidatorContext context) {
if (req == null) {
return true;
}
try {
delegate.validate(req.pricingType(), req.params());
} catch (RuntimeException ex) {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate(ex.getMessage())
.addConstraintViolation();
return false;
}
return true;
}
}