Handle express-validator error on the client side and fix #96 (#98)

* Handle express-validator error on the client side

* More meaningfull error for not supported format
This commit is contained in:
Ronan 2017-10-16 11:43:40 +02:00 committed by Bigard Florian
parent d8755eed1e
commit 8376734ee3
2 changed files with 17 additions and 3 deletions

View File

@ -45,8 +45,19 @@ export class RestExtractor {
errorMessage = err.error.message
console.error('An error occurred:', errorMessage)
} else if (err.status !== undefined) {
const body = err.error
errorMessage = body ? body.error : 'Unknown error.'
// A server-side error occurred.
// TODO: remove when angular/angular#19477 (comment) is fixed
let body = JSON.parse(err.error)
if (body) {
if (body.errors) {
const errors = body.errors
const error = errors[Object.keys(errors)[0]]
errorMessage = error.msg // Take the message of the first error
} else if (body.error) {
errorMessage = body.error
}
}
errorMessage = errorMessage ? errorMessage : 'Unknown error.'
console.error(`Backend returned code ${err.status}, body was: ${errorMessage}`)
} else {
errorMessage = err

View File

@ -23,7 +23,10 @@ import {
} from '../../helpers'
const videosAddValidator = [
body('videofile').custom((value, { req }) => isVideoFile(req.files)).withMessage('Should have a valid file'),
body('videofile').custom((value, { req }) => isVideoFile(req.files)).withMessage(
'This file is not supported. Are you sure it is of the following type : '
+ CONSTRAINTS_FIELDS.VIDEOS.EXTNAME
),
body('name').custom(isVideoNameValid).withMessage('Should have a valid name'),
body('category').custom(isVideoCategoryValid).withMessage('Should have a valid category'),
body('licence').custom(isVideoLicenceValid).withMessage('Should have a valid licence'),