ahsonali il y a 8 ans
Parent
révision
ef50ab23c8

+ 10
- 0
src/main/java/dtos/error/ErrorDetail.java Voir le fichier

12
     private String detail;
12
     private String detail;
13
     private long timeStamp;
13
     private long timeStamp;
14
     private String developerMessage;
14
     private String developerMessage;
15
+    public Map<String, List<ValidationError>> getErrors() {
16
+        return errors;
17
+    }
18
+
19
+    public ErrorDetail(){}
20
+
15
     private Map<String, List<ValidationError>> errors = new HashMap<String, List<ValidationError>>();
21
     private Map<String, List<ValidationError>> errors = new HashMap<String, List<ValidationError>>();
16
 
22
 
23
+
24
+
17
     public String getTitle() {
25
     public String getTitle() {
18
         return title;
26
         return title;
19
     }
27
     }
53
     public void setDeveloperMessage(String developerMessage) {
61
     public void setDeveloperMessage(String developerMessage) {
54
         this.developerMessage = developerMessage;
62
         this.developerMessage = developerMessage;
55
     }
63
     }
64
+
65
+
56
 }
66
 }

+ 6
- 4
src/main/java/io/zipcoder/tc_spring_poll_application/exception/ResourceNotFoundException.java Voir le fichier

4
 import org.springframework.web.bind.annotation.ResponseStatus;
4
 import org.springframework.web.bind.annotation.ResponseStatus;
5
 
5
 
6
 @ResponseStatus(HttpStatus.NOT_FOUND)
6
 @ResponseStatus(HttpStatus.NOT_FOUND)
7
-public class ResourceNotFoundException extends RuntimeException{
7
+public class ResourceNotFoundException extends RuntimeException {
8
 
8
 
9
     public ResourceNotFoundException(){}
9
     public ResourceNotFoundException(){}
10
 
10
 
11
-    ResourceNotFoundException(String message){
11
+    public ResourceNotFoundException(String message){
12
         super(message);
12
         super(message);
13
     }
13
     }
14
 
14
 
15
-    ResourceNotFoundException(String message, Throwable cause){
16
-        super(message, cause);
15
+    public ResourceNotFoundException(String message, Throwable cause){
16
+        super(message,cause);
17
     }
17
     }
18
+
19
+
18
 }
20
 }

src/main/java/dtos/error/RestExceptionHandler.java → src/main/java/io/zipcoder/tc_spring_poll_application/exception/RestExceptionHandler.java Voir le fichier

1
-package dtos.error;
1
+package io.zipcoder.tc_spring_poll_application.exception;
2
 
2
 
3
-import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
3
+import dtos.error.ErrorDetail;
4
+import dtos.error.ValidationError;
4
 import org.springframework.http.HttpStatus;
5
 import org.springframework.http.HttpStatus;
5
 import org.springframework.http.ResponseEntity;
6
 import org.springframework.http.ResponseEntity;
6
 import org.springframework.validation.FieldError;
7
 import org.springframework.validation.FieldError;
9
 import org.springframework.web.bind.annotation.ExceptionHandler;
10
 import org.springframework.web.bind.annotation.ExceptionHandler;
10
 
11
 
11
 import javax.servlet.http.HttpServletRequest;
12
 import javax.servlet.http.HttpServletRequest;
13
+import java.util.ArrayList;
12
 import java.util.Date;
14
 import java.util.Date;
13
 import java.util.List;
15
 import java.util.List;
14
 
16
 
16
 public class RestExceptionHandler {
18
 public class RestExceptionHandler {
17
 
19
 
18
     @ExceptionHandler(MethodArgumentNotValidException.class)
20
     @ExceptionHandler(MethodArgumentNotValidException.class)
19
-    public ResponseEntity<?> handleValidationError(MethodArgumentNotValidException manve, HttpServletRequest request){
21
+    public ResponseEntity<?>
22
+    handleValidationError(MethodArgumentNotValidException manve, HttpServletRequest request) {
20
 
23
 
21
         ErrorDetail errorDetail = new ErrorDetail();
24
         ErrorDetail errorDetail = new ErrorDetail();
22
         //Populate
25
         //Populate
23
         errorDetail.setTimeStamp(new Date().getTime());
26
         errorDetail.setTimeStamp(new Date().getTime());
24
         errorDetail.setStatus(HttpStatus.BAD_REQUEST.value());
27
         errorDetail.setStatus(HttpStatus.BAD_REQUEST.value());
25
         String requestPath = (String) request.getAttribute("javax.servlet.error.request_uri");
28
         String requestPath = (String) request.getAttribute("javax.servlet.error.request_uri");
26
-        if(requestPath == null){
29
+        if (requestPath == null) {
27
             requestPath = request.getRequestURI();
30
             requestPath = request.getRequestURI();
28
         }
31
         }
29
         errorDetail.setTitle("Validation Failed");
32
         errorDetail.setTitle("Validation Failed");
32
 
35
 
33
         //Create Validation Error instances
36
         //Create Validation Error instances
34
         List<FieldError> fieldErrors = manve.getBindingResult().getFieldErrors();
37
         List<FieldError> fieldErrors = manve.getBindingResult().getFieldErrors();
35
-        for(FieldError fe: fieldErrors){
38
+        for (FieldError fe : fieldErrors) {
36
             List<ValidationError> validationErrorList = errorDetail.getErrors().get(fe.getField());
39
             List<ValidationError> validationErrorList = errorDetail.getErrors().get(fe.getField());
40
+            if (validationErrorList == null) {
41
+                validationErrorList = new ArrayList<ValidationError>();
42
+                pwerrorDetail.getErrors().put(fe.getField(), validationErrorList);
43
+            }
44
+            ValidationError validationError = new ValidationError();
45
+            validationError.setCode(fe.getCode());
46
+            validationError.setMessage(fe.getDefaultMessage());
47
+            validationErrorList.add(validationError);
37
 
48
 
38
         }
49
         }
50
+
51
+        return new ResponseEntity<>(errorDetail, null, HttpStatus.BAD_REQUEST);
39
     }
52
     }
40
 
53
 
54
+}
41
 
55
 
42
 //    @ExceptionHandler(ResourceNotFoundException.class)
56
 //    @ExceptionHandler(ResourceNotFoundException.class)
43
 //    public ResponseEntity<?> handleResourceNotFoundException(ResourceNotFoundException rnfe, HttpServletRequest request) {
57
 //    public ResponseEntity<?> handleResourceNotFoundException(ResourceNotFoundException rnfe, HttpServletRequest request) {
54
 
68
 
55
 
69
 
56
 
70
 
57
-}
71
+