fixed not found wrong status 500 -> 404

This commit is contained in:
ialbert 2022-12-08 18:15:22 +03:00
parent 6a1951db28
commit af5d18ba36
3 changed files with 17 additions and 1 deletions

View file

@ -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

View file

@ -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;
}

View file

@ -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);
}