From 1d8f1f50e1db482542ebd0705e8a161955302e61 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 26 Aug 2019 23:19:39 -0400 Subject: [PATCH] fix: prevent empty page content --- server/helpers/error.js | 4 ++++ server/models/pages.js | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/server/helpers/error.js b/server/helpers/error.js index 2072c0c6..381430a4 100644 --- a/server/helpers/error.js +++ b/server/helpers/error.js @@ -125,6 +125,10 @@ module.exports = { message: 'Cannot create this page because an entry already exists at the same path.', code: 6002 }), + PageEmptyContent: CustomError('PageEmptyContent', { + message: 'Page content cannot be empty.', + code: 6004 + }), PageNotFound: CustomError('PageNotFound', { message: 'This page does not exist.', code: 6003 diff --git a/server/models/pages.js b/server/models/pages.js index 57ff652b..a84d3f38 100644 --- a/server/models/pages.js +++ b/server/models/pages.js @@ -182,6 +182,10 @@ module.exports = class Page extends Model { throw new WIKI.Error.PageDuplicateCreate() } + if (!opts.content || _.trim(opts.content).length < 1) { + throw new WIKI.Error.PageEmptyContent() + } + await WIKI.models.pages.query().insert({ authorId: opts.authorId, content: opts.content, @@ -230,6 +234,11 @@ module.exports = class Page extends Model { if (!ogPage) { throw new Error('Invalid Page Id') } + + if (!opts.content || _.trim(opts.content).length < 1) { + throw new WIKI.Error.PageEmptyContent() + } + await WIKI.models.pageHistory.addVersion({ ...ogPage, isPublished: ogPage.isPublished === true || ogPage.isPublished === 1,