Mitch Taylor 8 anni fa
parent
commit
3bd53f8089

+ 13
- 3
src/main/java/io/zipcoder/tc_spring_poll_application/exception/RestExceptionHandler.java Vedi File

@@ -3,19 +3,28 @@ package io.zipcoder.tc_spring_poll_application.exception;
3 3
 import java.util.ArrayList;
4 4
 import java.util.Date;
5 5
 import java.util.List;
6
+import javax.inject.Inject;
6 7
 import javax.servlet.http.HttpServletRequest;
7 8
 import dtos.error.ErrorDetail;
8 9
 import dtos.error.ValidationError;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.context.MessageSource;
9 12
 import org.springframework.http.HttpStatus;
10 13
 import org.springframework.http.ResponseEntity;
11 14
 import org.springframework.validation.FieldError;
12 15
 import org.springframework.web.bind.MethodArgumentNotValidException;
13 16
 import org.springframework.web.bind.annotation.ControllerAdvice;
14 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 21
 @ControllerAdvice
17 22
 public class RestExceptionHandler {
18 23
 
24
+    @Autowired
25
+    @Inject
26
+    private MessageSource messageSource;
27
+
19 28
     @ExceptionHandler(ResourceNotFoundException.class)
20 29
     public ResponseEntity<?> handleResourceNotFoundException(ResourceNotFoundException rnfe, HttpServletRequest request) {
21 30
         ErrorDetail errorDetail = new ErrorDetail();
@@ -28,7 +37,8 @@ public class RestExceptionHandler {
28 37
     }
29 38
 
30 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 42
         ErrorDetail errorDetail = new ErrorDetail();
33 43
         // Populate errorDetail instance
34 44
         errorDetail.setTimeStamp(new Date().getTime());
@@ -49,10 +59,10 @@ public class RestExceptionHandler {
49 59
             }
50 60
             ValidationError validationError = new ValidationError();
51 61
             validationError.setCode(fe.getCode());
52
-            validationError.setMessage(fe.getDefaultMessage());
62
+            validationError.setMessage(messageSource.getMessage(fe, null));
53 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 Vedi File

@@ -0,0 +1,37 @@
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);