summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey BION <joffrey.bion@gmail.com>2017-01-16 23:13:04 +0100
committerJoffrey BION <joffrey.bion@gmail.com>2017-01-16 23:13:04 +0100
commitdeddd5ef5e8593009cd0e7dce699a459d497a727 (patch)
tree4d74ef833ff5dec53982dce0b104d23b5adf6fb7
parentAdd Travis config for automatic deployment to Heroku (diff)
downloadseven-wonders-deddd5ef5e8593009cd0e7dce699a459d497a727.tar.gz
seven-wonders-deddd5ef5e8593009cd0e7dce699a459d497a727.tar.bz2
seven-wonders-deddd5ef5e8593009cd0e7dce699a459d497a727.zip
Separate client and server errors in the ExceptionHandler
-rw-r--r--src/main/java/org/luxons/sevenwonders/errors/ErrorType.java4
-rw-r--r--src/main/java/org/luxons/sevenwonders/errors/ExceptionHandler.java24
2 files changed, 13 insertions, 15 deletions
diff --git a/src/main/java/org/luxons/sevenwonders/errors/ErrorType.java b/src/main/java/org/luxons/sevenwonders/errors/ErrorType.java
index a4a0f631..1cd18d09 100644
--- a/src/main/java/org/luxons/sevenwonders/errors/ErrorType.java
+++ b/src/main/java/org/luxons/sevenwonders/errors/ErrorType.java
@@ -1,7 +1,5 @@
package org.luxons.sevenwonders.errors;
enum ErrorType {
- USER,
- VALIDATION,
- INTERNAL
+ USER_INPUT, VALIDATION, CLIENT, SERVER
}
diff --git a/src/main/java/org/luxons/sevenwonders/errors/ExceptionHandler.java b/src/main/java/org/luxons/sevenwonders/errors/ExceptionHandler.java
index 26a84ab2..628da4f8 100644
--- a/src/main/java/org/luxons/sevenwonders/errors/ExceptionHandler.java
+++ b/src/main/java/org/luxons/sevenwonders/errors/ExceptionHandler.java
@@ -37,13 +37,22 @@ public class ExceptionHandler {
@MessageExceptionHandler
@SendToUser("/queue/errors")
+ public UIError handleUserInputError(UserInputException exception) {
+ logger.error("Incorrect user input: " + exception.getMessage());
+ String messageKey = exception.getMessageResourceKey();
+ String message = messageSource.getMessage(messageKey, exception.getParams(), messageKey, Locale.US);
+ return new UIError(messageKey, message, ErrorType.USER_INPUT);
+ }
+
+ @MessageExceptionHandler
+ @SendToUser("/queue/errors")
public UIError handleValidationError(MethodArgumentNotValidException exception) {
logger.error("Invalid input", exception);
UIError uiError = new UIError(ERROR_CODE_VALIDATION, ERROR_MSG_VALIDATION, ErrorType.VALIDATION);
BindingResult result = exception.getBindingResult();
if (result != null) {
- List<ObjectError> errors = exception.getBindingResult().getAllErrors();
+ List<ObjectError> errors = result.getAllErrors();
uiError.addDetails(errors);
}
return uiError;
@@ -58,24 +67,15 @@ public class ExceptionHandler {
@MessageExceptionHandler
@SendToUser("/queue/errors")
- public UIError handleGenericUserError(UserInputException exception) {
- logger.error("Incorrect user input: " + exception.getMessage());
- String messageKey = exception.getMessageResourceKey();
- String message = messageSource.getMessage(messageKey, exception.getParams(), messageKey, Locale.US);
- return new UIError(messageKey, message, ErrorType.USER);
- }
-
- @MessageExceptionHandler
- @SendToUser("/queue/errors")
public UIError handleApiError(ApiMisuseException exception) {
logger.error("Invalid API input", exception);
- return new UIError(exception.getClass().getSimpleName(), exception.getMessage(), ErrorType.INTERNAL);
+ return new UIError(exception.getClass().getSimpleName(), exception.getMessage(), ErrorType.CLIENT);
}
@MessageExceptionHandler
@SendToUser("/queue/errors")
public UIError handleUnexpectedInternalError(Throwable exception) {
logger.error("Uncaught exception thrown during message handling", exception);
- return new UIError(exception.getClass().getSimpleName(), exception.getMessage(), ErrorType.INTERNAL);
+ return new UIError(exception.getClass().getSimpleName(), exception.getMessage(), ErrorType.SERVER);
}
}
bgstack15