Mitch Taylor 8 yıl önce
ebeveyn
işleme
3bd53f8089

+ 13
- 3
src/main/java/io/zipcoder/tc_spring_poll_application/exception/RestExceptionHandler.java Dosyayı Görüntüle

3
 import java.util.ArrayList;
3
 import java.util.ArrayList;
4
 import java.util.Date;
4
 import java.util.Date;
5
 import java.util.List;
5
 import java.util.List;
6
+import javax.inject.Inject;
6
 import javax.servlet.http.HttpServletRequest;
7
 import javax.servlet.http.HttpServletRequest;
7
 import dtos.error.ErrorDetail;
8
 import dtos.error.ErrorDetail;
8
 import dtos.error.ValidationError;
9
 import dtos.error.ValidationError;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.context.MessageSource;
9
 import org.springframework.http.HttpStatus;
12
 import org.springframework.http.HttpStatus;
10
 import org.springframework.http.ResponseEntity;
13
 import org.springframework.http.ResponseEntity;
11
 import org.springframework.validation.FieldError;
14
 import org.springframework.validation.FieldError;
12
 import org.springframework.web.bind.MethodArgumentNotValidException;
15
 import org.springframework.web.bind.MethodArgumentNotValidException;
13
 import org.springframework.web.bind.annotation.ControllerAdvice;
16
 import org.springframework.web.bind.annotation.ControllerAdvice;
14
 import org.springframework.web.bind.annotation.ExceptionHandler;
17
 import org.springframework.web.bind.annotation.ExceptionHandler;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.ResponseStatus;
15
 
20
 
16
 @ControllerAdvice
21
 @ControllerAdvice
17
 public class RestExceptionHandler {
22
 public class RestExceptionHandler {
18
 
23
 
24
+    @Autowired
25
+    @Inject
26
+    private MessageSource messageSource;
27
+
19
     @ExceptionHandler(ResourceNotFoundException.class)
28
     @ExceptionHandler(ResourceNotFoundException.class)
20
     public ResponseEntity<?> handleResourceNotFoundException(ResourceNotFoundException rnfe, HttpServletRequest request) {
29
     public ResponseEntity<?> handleResourceNotFoundException(ResourceNotFoundException rnfe, HttpServletRequest request) {
21
         ErrorDetail errorDetail = new ErrorDetail();
30
         ErrorDetail errorDetail = new ErrorDetail();
28
     }
37
     }
29
 
38
 
30
     @ExceptionHandler(MethodArgumentNotValidException.class)
39
     @ExceptionHandler(MethodArgumentNotValidException.class)
31
-    public ResponseEntity<?> handleValidationError(MethodArgumentNotValidException manve, HttpServletRequest request) {
40
+    @ResponseStatus(HttpStatus.BAD_REQUEST)
41
+    public @ResponseBody ErrorDetail handleValidationError(MethodArgumentNotValidException manve, HttpServletRequest request) {
32
         ErrorDetail errorDetail = new ErrorDetail();
42
         ErrorDetail errorDetail = new ErrorDetail();
33
         // Populate errorDetail instance
43
         // Populate errorDetail instance
34
         errorDetail.setTimeStamp(new Date().getTime());
44
         errorDetail.setTimeStamp(new Date().getTime());
49
             }
59
             }
50
             ValidationError validationError = new ValidationError();
60
             ValidationError validationError = new ValidationError();
51
             validationError.setCode(fe.getCode());
61
             validationError.setCode(fe.getCode());
52
-            validationError.setMessage(fe.getDefaultMessage());
62
+            validationError.setMessage(messageSource.getMessage(fe, null));
53
             validationErrorList.add(validationError);
63
             validationErrorList.add(validationError);
54
         }
64
         }
55
-        return new ResponseEntity<>(errorDetail, null, HttpStatus. BAD_REQUEST);
65
+        return errorDetail;
56
     }
66
     }
57
 
67
 
58
 }
68
 }

+ 37
- 0
src/main/resources/import.sql Dosyayı Görüntüle

1
+insert into poll (poll_id, question) values (1, 'What is your favorite color?');
2
+insert into poll (poll_id, question) values (2, 'What is your favorite anime?');
3
+insert into poll (poll_id, question) values (3, 'What is your favorite game?');
4
+insert into poll (poll_id, question) values (4, 'What is your favorite instructor?');
5
+insert into poll (poll_id, question) values (5, 'What is your favorite ide?');
6
+insert into poll (poll_id, question) values (6, 'What is your favorite Dark Souls?');
7
+
8
+insert into option (option_id, option_value, poll_id) values (1, 'Red', 1);
9
+insert into option (option_id, option_value, poll_id) values (2, 'Green', 1);
10
+insert into option (option_id, option_value, poll_id) values (3, 'Blue', 1);
11
+insert into option (option_id, option_value, poll_id) values (4, 'Pink', 1);
12
+insert into option (option_id, option_value, poll_id) values (5, 'Yellow', 1);
13
+
14
+insert into option (option_id, option_value, poll_id) values (1, 'Phantom Blood', 2);
15
+insert into option (option_id, option_value, poll_id) values (2, 'Battle Tendency', 2);
16
+insert into option (option_id, option_value, poll_id) values (3, 'Stardust Crusaders', 2);
17
+insert into option (option_id, option_value, poll_id) values (4, 'Diamond is Unbreakable', 2);
18
+
19
+insert into option (option_id, option_value, poll_id) values (1, 'Cuphead', 3);
20
+insert into option (option_id, option_value, poll_id) values (2, 'Hotline Miami', 3);
21
+insert into option (option_id, option_value, poll_id) values (3, 'Hotline Miami 2', 3);
22
+
23
+insert into option (option_id, option_value, poll_id) values (1, 'Leon', 4);
24
+insert into option (option_id, option_value, poll_id) values (2, 'Chris', 4);
25
+insert into option (option_id, option_value, poll_id) values (3, 'Wilhem', 4);
26
+insert into option (option_id, option_value, poll_id) values (4, 'Not Tariq', 4);
27
+
28
+insert into option (option_id, option_value, poll_id) values (1, 'Eclipse', 5);
29
+insert into option (option_id, option_value, poll_id) values (2, 'Net Beans', 5);
30
+insert into option (option_id, option_value, poll_id) values (3, 'IntelliJ', 5);
31
+insert into option (option_id, option_value, poll_id) values (4, 'ides are for babies', 5);
32
+
33
+insert into option (option_id, option_value, poll_id) values (1, '1', 6);
34
+insert into option (option_id, option_value, poll_id) values (2, '2', 6);
35
+insert into option (option_id, option_value, poll_id) values (3, '3', 6);
36
+insert into option (option_id, option_value, poll_id) values (4, 'Demons', 6);
37
+insert into option (option_id, option_value, poll_id) values (5, 'BB', 6);