Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. package com.loncoto.firstsecurityform.validation;
  2.  
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.stream.Collectors;
  7.  
  8. import org.springframework.data.rest.core.RepositoryConstraintViolationException;
  9. import org.springframework.http.HttpHeaders;
  10. import org.springframework.http.HttpStatus;
  11. import org.springframework.http.ResponseEntity;
  12. import org.springframework.web.bind.annotation.ControllerAdvice;
  13. import org.springframework.web.bind.annotation.ExceptionHandler;
  14. import org.springframework.web.context.request.WebRequest;
  15. import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
  16.  
  17. // conseil appliqué à d'autres controller (comme celui de spring data rest)
  18. @ControllerAdvice
  19. public class RestValidationExceptionHandler extends ResponseEntityExceptionHandler {
  20.  
  21. // methode de gestion des exceptions
  22. @ExceptionHandler({RepositoryConstraintViolationException.class})
  23. public ResponseEntity<Object> handleValidationErrorException(Exception ex, WebRequest request) {
  24. RepositoryConstraintViolationException vex = (RepositoryConstraintViolationException)ex;
  25.  
  26. List<Map<String,String>> errors =
  27. vex.getErrors().getFieldErrors().stream()
  28. .map( e -> {
  29. HashMap<String, String> message = new HashMap<>();
  30. message.put("fieldName", e.getField());
  31. message.put("error", e.getCode());
  32. message.put("resource", e.getObjectName());
  33. return message;
  34. })
  35. .collect(Collectors.toList());
  36. // reponse renvoyée avec les messages d'erreur validation
  37. return new ResponseEntity<Object>(errors, new HttpHeaders(), HttpStatus.PARTIAL_CONTENT);
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement