Skip to content
Snippets Groups Projects
Commit 209a52e8 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-4949 Validation with Validator for nicer Errorresponse

parent 156bb968
Branches
Tags
No related merge requests found
...@@ -23,8 +23,6 @@ package de.ozgcloud.admin.settings; ...@@ -23,8 +23,6 @@ package de.ozgcloud.admin.settings;
import java.util.List; import java.util.List;
import jakarta.validation.Valid;
import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource; import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -34,7 +32,6 @@ import org.springframework.validation.annotation.Validated; ...@@ -34,7 +32,6 @@ import org.springframework.validation.annotation.Validated;
interface SettingsRepository extends MongoRepository<Settings, String> { interface SettingsRepository extends MongoRepository<Settings, String> {
@Override @Override
@Valid
Settings save(Settings entity); Settings save(Settings entity);
List<Settings> findByName(String name); List<Settings> findByName(String name);
......
package de.ozgcloud.admin.settings;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Validation;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
@Component
public class SettingsValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return Settings.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
jakarta.validation.Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
var constraintViolations = validator.validate(target);
if (!constraintViolations.isEmpty()) {
throw new ConstraintViolationException(constraintViolations);
}
}
}
package de.ozgcloud.admin.settings;
import java.util.Map;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.rest.core.event.ValidatingRepositoryEventListener;
import org.springframework.validation.Validator;
@Configuration
public class ValidatorEventRegister implements InitializingBean {
@Autowired
ValidatingRepositoryEventListener validatingRepositoryEventListener;
@Autowired
private Map<String, Validator> validators;
@Override
public void afterPropertiesSet() throws Exception {
validatingRepositoryEventListener.addValidator("beforeSave", validators.get("settingsValidator"));
validatingRepositoryEventListener.addValidator("beforeCreate", validators.get("settingsValidator"));
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment