fixed not found wrong status 500 -> 404
This commit is contained in:
parent
6a1951db28
commit
af5d18ba36
3 changed files with 17 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue