| import org.springframework.validation.* |
| |
| /** |
| * Renders validation errors according to vnd.error: https://github.com/blongden/vnd.error |
| */ |
| model { |
| Errors errors |
| } |
| |
| response.status UNPROCESSABLE_ENTITY |
| |
| json { |
| Errors errorsObject = (Errors)this.errors |
| def allErrors = errorsObject.allErrors |
| int errorCount = allErrors.size() |
| def resourcePath = g.link(resource:request.uri, absolute:false) |
| def resourceLink = g.link(resource:request.uri, absolute:true) |
| if(errorCount == 1) { |
| def error = allErrors.iterator().next() |
| message messageSource.getMessage(error, locale) |
| path resourcePath |
| _links { |
| self { |
| href resourceLink |
| } |
| } |
| } |
| else { |
| total errorCount |
| _embedded { |
| errors(allErrors) { ObjectError error -> |
| message messageSource.getMessage(error, locale) |
| path resourcePath |
| _links { |
| self { |
| href resourceLink |
| } |
| } |
| } |
| } |
| } |
| } |