From af5d18ba36660a01223700dc64d02a45a3b99f45 Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 8 Dec 2022 18:15:22 +0300 Subject: [PATCH] fixed not found wrong status 500 -> 404 --- .../controller/queue/QueueExceptionHandler.java | 12 ++++++++++++ .../backendapi/errors/NotFound404Exception.java | 4 ++++ .../backendapi/service/impl/OperatorImpl.java | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/QueueExceptionHandler.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/QueueExceptionHandler.java index 70dafb130..612664217 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/QueueExceptionHandler.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/QueueExceptionHandler.java @@ -20,6 +20,7 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExcep import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.errors.ActionValidationException; import ru.spcex.clearing.backendapi.errors.BackEndError; +import ru.spcex.clearing.backendapi.errors.NotFound404Exception; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.log.ExceptionUtils; @@ -64,6 +65,17 @@ public class QueueExceptionHandler extends ResponseEntityExceptionHandler { } + @ExceptionHandler(NotFound404Exception.class) + @ResponseStatus(value = HttpStatus.NOT_FOUND) + @ResponseBody + public BasicSpcexResponse notFoundEx(NotFound404Exception ex) { + BasicSpcexResponse response = new BasicSpcexResponse(); + EnumMessage message = ex.getError(); + response.setCode(message.getSubject().getId()); + response.setMessage(errorResolver.resolve(message)); + return response; + } + @ExceptionHandler(value = Throwable.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @ResponseBody diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/NotFound404Exception.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/NotFound404Exception.java index 1483749e5..9c225657f 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/NotFound404Exception.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/errors/NotFound404Exception.java @@ -10,6 +10,10 @@ public class NotFound404Exception extends RuntimeException { this.error = new EnumMessage(BackEndError.ResourceNotFound, comment); } + public NotFound404Exception(EnumMessage error) { + this.error = error; + } + public EnumMessage getError() { return error; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java index dedc83844..a5d1334bf 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java @@ -67,7 +67,7 @@ public class OperatorImpl implements IOperator { if (validator != null) { validator.tillFirstError().ifPresent(enumMessage -> { if (enumMessage.getSubject().equalsById(BackEndError.ResourceNotFound.getId())) { - throw new NotFound404Exception((String) enumMessage.getArgs()[0]); + throw new NotFound404Exception(enumMessage); } else { throw new ActionValidationException(enumMessage); }