Browse Source

return validation errors

gh-pages
Maurits Lourens 5 years ago
parent
commit
8dfef0d342
  1. 5
      packages/builder/src/components/backend/DataTable/modals/CreateEditRow.svelte
  2. 4
      packages/server/src/api/controllers/row/internal.js
  3. 1
      packages/server/src/api/index.js

5
packages/builder/src/components/backend/DataTable/modals/CreateEditRow.svelte

@ -31,7 +31,10 @@
.flat()
// Prevent modal closing if there were errors
return false
} else if (rowResponse.status === 400 || rowResponse.status === 500) {
} else if (rowResponse.status === 400 && rowResponse.validationErrors) {
errors = Object.keys(rowResponse.validationErrors).map(field => ({message: `${field} ${rowResponse.validationErrors[field][0]}`}))
return false
} else if (rowResponse.status === 500) {
errors = [{ message: rowResponse.message }]
return false
}

4
packages/server/src/api/controllers/row/internal.js

@ -57,7 +57,7 @@ exports.patch = async ctx => {
})
if (!validateResult.valid) {
throw validateResult.errors
throw { validation: validateResult.errors }
}
// returned row is cleaned and prepared for writing to DB
@ -105,7 +105,7 @@ exports.save = async function (ctx) {
})
if (!validateResult.valid) {
throw validateResult.errors
throw { validation: validateResult.errors }
}
// make sure link rows are up to date

1
packages/server/src/api/index.js

@ -58,6 +58,7 @@ router.use(async (ctx, next) => {
ctx.body = {
message: err.message,
status: ctx.status,
validationErrors: err.validation
}
if (env.NODE_ENV !== "jest") {
ctx.log.error(err)

Loading…
Cancel
Save