diff --git a/00-backend/src/main/java/de/htwsaar/webshop/service/ValidatorService.java b/00-backend/src/main/java/de/htwsaar/webshop/service/ValidatorService.java new file mode 100644 index 0000000..515c453 --- /dev/null +++ b/00-backend/src/main/java/de/htwsaar/webshop/service/ValidatorService.java @@ -0,0 +1,5 @@ +package de.htwsaar.webshop.service; + +public interface ValidatorService { + boolean isInvalid(T object); +} diff --git a/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ValidatorServiceImpl.java b/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ValidatorServiceImpl.java new file mode 100644 index 0000000..f0c4dac --- /dev/null +++ b/00-backend/src/main/java/de/htwsaar/webshop/service/impl/ValidatorServiceImpl.java @@ -0,0 +1,34 @@ +package de.htwsaar.webshop.service.impl; + +import de.htwsaar.webshop.service.ValidatorService; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.Validation; +import jakarta.validation.Validator; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Set; + +@Service +@Slf4j +public class ValidatorServiceImpl implements ValidatorService { + private final Validator validator; + + public ValidatorServiceImpl() { + validator = Validation.buildDefaultValidatorFactory().getValidator(); + } + + /** + * Jakarta Validator + * + * @param validatable any Validatable + * @return whether the Object is Invalid + * @param any Validatable + */ + @Override + public boolean isInvalid(T validatable) { + Set> violations = validator.validate(validatable); + violations.forEach((violation) -> log.warn("[Validator] Invalid {}: {}", validatable, violation.getMessage())); + return !violations.isEmpty(); + } +}