diff --git a/core/server/web/api/v2/admin/middleware.js b/core/server/web/api/v2/admin/middleware.js index 818c864329..9c998ef557 100644 --- a/core/server/web/api/v2/admin/middleware.js +++ b/core/server/web/api/v2/admin/middleware.js @@ -13,7 +13,7 @@ const notImplemented = function (req, res, next) { // @NOTE: stable posts: ['GET', 'PUT', 'DELETE', 'POST'], tags: ['GET', 'PUT', 'DELETE', 'POST'], - uploads: ['POST'], + images: ['POST'], // @NOTE: experimental users: ['GET'], themes: ['POST'] diff --git a/core/server/web/api/v2/admin/routes.js b/core/server/web/api/v2/admin/routes.js index c3b47035b9..3393b86125 100644 --- a/core/server/web/api/v2/admin/routes.js +++ b/core/server/web/api/v2/admin/routes.js @@ -181,8 +181,8 @@ module.exports = function apiRoutes() { router.put('/authentication/setup', mw.authAdminApi, api.http(api.authentication.updateSetup)); router.get('/authentication/setup', api.http(api.authentication.isSetup)); - // ## Uploads - // @TODO: rename endpoint to /images/upload (or similar) + // ## Images + // @TODO: remove /uploads/ in favor of /images/ in Ghost 3.x router.post('/uploads', mw.authAdminApi, upload.single('uploadimage'), @@ -208,6 +208,31 @@ module.exports = function apiRoutes() { apiv2.http(apiv2.upload.image) ); + router.post('/images', + mw.authAdminApi, + upload.single('uploadimage'), + shared.middlewares.validation.upload({type: 'images'}), + shared.middlewares.image.normalize, + apiv2.http(apiv2.upload.image) + ); + + router.post('/images/profile-image', + mw.authAdminApi, + upload.single('uploadimage'), + shared.middlewares.validation.upload({type: 'images'}), + shared.middlewares.validation.profileImage, + shared.middlewares.image.normalize, + apiv2.http(apiv2.upload.image) + ); + + router.post('/images/icon', + mw.authAdminApi, + upload.single('uploadimage'), + shared.middlewares.validation.upload({type: 'icons'}), + shared.middlewares.validation.blogIcon(), + apiv2.http(apiv2.upload.image) + ); + // ## Invites router.get('/invites', mw.authAdminApi, apiv2.http(apiv2.invites.browse)); router.get('/invites/:id', mw.authAdminApi, apiv2.http(apiv2.invites.read));