Skip to content

Instantly share code, notes, and snippets.

@sezRR
Created April 20, 2023 19:45
Show Gist options
  • Save sezRR/b6860272965ba81714d55247cd01fa37 to your computer and use it in GitHub Desktop.
Save sezRR/b6860272965ba81714d55247cd01fa37 to your computer and use it in GitHub Desktop.
@Component
public class ValidationResponseChecker<T> {
private final BeanValidation<T> beanValidation;
@Autowired
public ValidationResponseChecker(BeanValidation<T> beanValidation) {
this.beanValidation = beanValidation;
}
@SuppressWarnings("unchecked")
public DataValidationCustomResponseEntity<T> validateUnmappedObject(Object object, Class<T> mainObject){
var validationResponse = beanValidation.validateUnmappedObject(object, mainObject);
BindingResult bindingResult = (BindingResult) validationResponse.get("bindingResult");
if (bindingResult.hasErrors())
return new DataValidationCustomResponseEntity<>(bindingResult, HttpStatus.BAD_REQUEST);
return new DataValidationCustomResponseEntity<>((T) validationResponse.get("mappedObject"), bindingResult, HttpStatus.OK);
}
public DataValidationCustomResponseEntity<T> validateMappedObject(T object){
var bindingResult = beanValidation.validate(object);
if (bindingResult.hasErrors())
return new DataValidationCustomResponseEntity<>(bindingResult, HttpStatus.BAD_REQUEST);
return new DataValidationCustomResponseEntity<>(object, bindingResult, HttpStatus.OK);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment