|
1 | 1 | package ca.bc.gov.educ.api.course.config;
|
2 | 2 |
|
| 3 | +import ca.bc.gov.educ.api.course.exception.EntityNotFoundException; |
| 4 | +import ca.bc.gov.educ.api.course.exception.GradBusinessRuleException; |
| 5 | +import ca.bc.gov.educ.api.course.util.ApiResponseMessage.MessageTypeEnum; |
| 6 | +import ca.bc.gov.educ.api.course.util.ApiResponseModel; |
| 7 | +import ca.bc.gov.educ.api.course.util.GradValidation; |
3 | 8 | import org.hibernate.dialect.lock.OptimisticEntityLockException;
|
4 | 9 | import org.hibernate.exception.ConstraintViolationException;
|
5 | 10 | import org.jboss.logging.Logger;
|
|
15 | 20 | import org.springframework.web.context.request.WebRequest;
|
16 | 21 | import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
|
17 | 22 |
|
18 |
| -import ca.bc.gov.educ.api.course.util.ApiResponseMessage.MessageTypeEnum; |
19 |
| -import ca.bc.gov.educ.api.course.util.ApiResponseModel; |
20 |
| -import ca.bc.gov.educ.api.course.exception.GradBusinessRuleException; |
21 |
| -import ca.bc.gov.educ.api.course.util.GradValidation; |
22 |
| - |
23 | 23 | @ControllerAdvice
|
24 | 24 | public class RestErrorHandler extends ResponseEntityExceptionHandler {
|
25 | 25 |
|
@@ -55,16 +55,17 @@ protected ResponseEntity<Object> handleAuthorizationErrors(Exception ex, WebRequ
|
55 | 55 | return new ResponseEntity<>(ApiResponseModel.ERROR(null, message), HttpStatus.FORBIDDEN);
|
56 | 56 | }
|
57 | 57 |
|
58 |
| - @ExceptionHandler(value = { GradBusinessRuleException.class }) |
59 |
| - protected ResponseEntity<Object> handleIrisBusinessException(Exception ex, WebRequest request) { |
60 |
| - ApiResponseModel<?> response = ApiResponseModel.ERROR(null); |
| 58 | + @ExceptionHandler(value = { GradBusinessRuleException.class, EntityNotFoundException.class }) |
| 59 | + protected ResponseEntity<Object> handleGradBusinessException(Exception ex, WebRequest request) { |
| 60 | + ApiResponseModel<?> response = ApiResponseModel.ERROR(request.toString()); |
61 | 61 | validation.ifErrors(response::addErrorMessages);
|
62 | 62 | validation.ifWarnings(response::addWarningMessages);
|
63 | 63 | if (response.getMessages().isEmpty()) {
|
64 | 64 | response.addMessageItem(ex.getLocalizedMessage(), MessageTypeEnum.ERROR);
|
65 | 65 | }
|
66 | 66 | validation.clear();
|
67 |
| - return new ResponseEntity<>(response, HttpStatus.UNPROCESSABLE_ENTITY); |
| 67 | + HttpStatus httpStatus = (ex instanceof EntityNotFoundException) ? HttpStatus.NOT_FOUND : HttpStatus.UNPROCESSABLE_ENTITY; |
| 68 | + return new ResponseEntity<>(response, httpStatus); |
68 | 69 | }
|
69 | 70 |
|
70 | 71 | @ExceptionHandler(value = { OptimisticEntityLockException.class })
|
|
0 commit comments