diff --git a/ghost/core/core/server/api/endpoints/db.js b/ghost/core/core/server/api/endpoints/db.js index 26e22eb731..c16306865c 100644 --- a/ghost/core/core/server/api/endpoints/db.js +++ b/ghost/core/core/server/api/endpoints/db.js @@ -3,6 +3,7 @@ const moment = require('moment-timezone'); const dbBackup = require('../../data/db/backup'); const exporter = require('../../data/exporter'); const importer = require('../../data/importer'); +const mediaInliner = require('../../services/media-inliner'); const errors = require('@tryghost/errors'); const models = require('../../models'); const settingsCache = require('../../../shared/settings-cache'); @@ -93,6 +94,22 @@ module.exports = { } }, + inlineMedia: { + permissions: { + method: 'importContent' + }, + validation: { + options: { + include: { + values: ['domains'] + } + } + }, + async query(frame) { + return mediaInliner.api.startMediaInliner(frame.data.domains); + } + }, + deleteAllContent: { headers: { cacheInvalidate: true diff --git a/ghost/core/core/server/services/media-inliner/index.js b/ghost/core/core/server/services/media-inliner/index.js new file mode 100644 index 0000000000..102ef66d4f --- /dev/null +++ b/ghost/core/core/server/services/media-inliner/index.js @@ -0,0 +1 @@ +module.exports = require('./service'); diff --git a/ghost/core/core/server/services/media-inliner/service.js b/ghost/core/core/server/services/media-inliner/service.js index e30571cb93..4d60f39ae6 100644 --- a/ghost/core/core/server/services/media-inliner/service.js +++ b/ghost/core/core/server/services/media-inliner/service.js @@ -5,8 +5,8 @@ module.exports = { this.api = { // @NOTE: the inlining should become an offloaded job // startMediaInliner: mediaInliner.inlineMedia - startMediaInliner: () => { - debug('[Inliner] Starting media inlining job'); + startMediaInliner: (domains) => { + debug('[Inliner] Starting media inlining job for domains: ', domains); return { status: 'success' }; diff --git a/ghost/core/core/server/web/api/endpoints/admin/routes.js b/ghost/core/core/server/web/api/endpoints/admin/routes.js index 70f887c92e..4e3e60e7e6 100644 --- a/ghost/core/core/server/web/api/endpoints/admin/routes.js +++ b/ghost/core/core/server/web/api/endpoints/admin/routes.js @@ -205,6 +205,12 @@ module.exports = function apiRoutes() { http(api.db.backupContent) ); + router.post('/db/media/inline', + mw.authAdminApi, + labs.enabledMiddleware('mediaInliner'), + http(api.db.inlineMedia) + ); + // ## Slack router.post('/slack/test', mw.authAdminApi, http(api.slack.sendTest));