From accf0c645abca4219fd208b47d3f8f178276f3e3 Mon Sep 17 00:00:00 2001 From: Naz Date: Thu, 5 Aug 2021 14:42:16 +0400 Subject: [PATCH] Refactored Pages API v3/canary controllers refs https://github.com/TryGhost/Team/issues/949 refs https://github.com/TryGhost/Ghost/commit/e64274bb45e948c52d6fbac564f609a24e33ce6e - This refactor is needed to bring the code in line with the rest of pages API controllers - Next step will extract shared code patterns into a separate module --- core/server/api/canary/pages.js | 43 ++++++++++++++++----------------- core/server/api/v3/pages.js | 43 ++++++++++++++++----------------- 2 files changed, 42 insertions(+), 44 deletions(-) diff --git a/core/server/api/canary/pages.js b/core/server/api/canary/pages.js index 3fc066c5c1..d4f1adb409 100644 --- a/core/server/api/canary/pages.js +++ b/core/server/api/canary/pages.js @@ -147,29 +147,28 @@ module.exports = { docName: 'posts', unsafeAttrs: UNSAFE_ATTRS }, - query(frame) { - return models.Post.edit(frame.data.pages[0], frame.options) - .then((model) => { - if ( - model.get('status') === 'published' && model.wasChanged() || - model.get('status') === 'draft' && model.previous('status') === 'published' - ) { - this.headers.cacheInvalidate = true; - } else if ( - model.get('status') === 'draft' && model.previous('status') !== 'published' || - model.get('status') === 'scheduled' && model.wasChanged() - ) { - this.headers.cacheInvalidate = { - value: urlUtils.urlFor({ - relativeUrl: urlUtils.urlJoin('/p', model.get('uuid'), '/') - }) - }; - } else { - this.headers.cacheInvalidate = false; - } + async query(frame) { + const model = await models.Post.edit(frame.data.pages[0], frame.options); - return model; - }); + if ( + model.get('status') === 'published' && model.wasChanged() || + model.get('status') === 'draft' && model.previous('status') === 'published' + ) { + this.headers.cacheInvalidate = true; + } else if ( + model.get('status') === 'draft' && model.previous('status') !== 'published' || + model.get('status') === 'scheduled' && model.wasChanged() + ) { + this.headers.cacheInvalidate = { + value: urlUtils.urlFor({ + relativeUrl: urlUtils.urlJoin('/p', model.get('uuid'), '/') + }) + }; + } else { + this.headers.cacheInvalidate = false; + } + + return model; } }, diff --git a/core/server/api/v3/pages.js b/core/server/api/v3/pages.js index 3fc066c5c1..d4f1adb409 100644 --- a/core/server/api/v3/pages.js +++ b/core/server/api/v3/pages.js @@ -147,29 +147,28 @@ module.exports = { docName: 'posts', unsafeAttrs: UNSAFE_ATTRS }, - query(frame) { - return models.Post.edit(frame.data.pages[0], frame.options) - .then((model) => { - if ( - model.get('status') === 'published' && model.wasChanged() || - model.get('status') === 'draft' && model.previous('status') === 'published' - ) { - this.headers.cacheInvalidate = true; - } else if ( - model.get('status') === 'draft' && model.previous('status') !== 'published' || - model.get('status') === 'scheduled' && model.wasChanged() - ) { - this.headers.cacheInvalidate = { - value: urlUtils.urlFor({ - relativeUrl: urlUtils.urlJoin('/p', model.get('uuid'), '/') - }) - }; - } else { - this.headers.cacheInvalidate = false; - } + async query(frame) { + const model = await models.Post.edit(frame.data.pages[0], frame.options); - return model; - }); + if ( + model.get('status') === 'published' && model.wasChanged() || + model.get('status') === 'draft' && model.previous('status') === 'published' + ) { + this.headers.cacheInvalidate = true; + } else if ( + model.get('status') === 'draft' && model.previous('status') !== 'published' || + model.get('status') === 'scheduled' && model.wasChanged() + ) { + this.headers.cacheInvalidate = { + value: urlUtils.urlFor({ + relativeUrl: urlUtils.urlJoin('/p', model.get('uuid'), '/') + }) + }; + } else { + this.headers.cacheInvalidate = false; + } + + return model; } },