From 43b6f7add290aa2f14c2f27842f55b66299d28f0 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Tue, 26 Feb 2019 11:21:24 +0700 Subject: [PATCH] Updated profile image uploads in setup/signup flows for new /images/upload/ endpoint --- ghost/admin/app/controllers/setup/two.js | 8 +++++--- ghost/admin/app/controllers/signup.js | 19 ++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/ghost/admin/app/controllers/setup/two.js b/ghost/admin/app/controllers/setup/two.js index 5ac186796e..4cd703fcaf 100644 --- a/ghost/admin/app/controllers/setup/two.js +++ b/ghost/admin/app/controllers/setup/two.js @@ -86,9 +86,10 @@ export default Controller.extend(ValidationEngine, { _sendImage(user) { let formData = new FormData(); let imageFile = this.get('profileImage'); - let uploadUrl = this.get('ghostPaths.url').api('images'); + let uploadUrl = this.get('ghostPaths.url').api('images', 'upload'); - formData.append('uploadimage', imageFile, imageFile.name); + formData.append('file', imageFile, imageFile.name); + formData.append('purpose', 'profile_image'); return this.get('ajax').post(uploadUrl, { data: formData, @@ -96,7 +97,8 @@ export default Controller.extend(ValidationEngine, { contentType: false, dataType: 'text' }).then((response) => { - let imageUrl = get(JSON.parse(response), 'url'); + let [image] = get(JSON.parse(response), 'images'); + let imageUrl = image.url; let usersUrl = this.get('ghostPaths.url').api('users', user.id.toString()); user.profile_image = imageUrl; diff --git a/ghost/admin/app/controllers/signup.js b/ghost/admin/app/controllers/signup.js index fb2a01baea..6ca1d84b92 100644 --- a/ghost/admin/app/controllers/signup.js +++ b/ghost/admin/app/controllers/signup.js @@ -49,7 +49,7 @@ export default Controller.extend({ try { yield this._authenticateWithPassword(); - yield this.get('_sendImage').perform(); + yield this._sendImage.perform(); } catch (error) { notifications.showAPIError(error, {key: 'signup.complete'}); } @@ -99,10 +99,11 @@ export default Controller.extend({ _sendImage: task(function* () { let formData = new FormData(); let imageFile = this.get('profileImage'); - let uploadUrl = this.get('ghostPaths.url').api('images'); + let uploadUrl = this.get('ghostPaths.url').api('images', 'upload'); if (imageFile) { - formData.append('uploadimage', imageFile, imageFile.name); + formData.append('file', imageFile, imageFile.name); + formData.append('purpose', 'profile_image'); let user = yield this.get('session.user'); let response = yield this.get('ajax').post(uploadUrl, { @@ -112,16 +113,12 @@ export default Controller.extend({ dataType: 'text' }); - let imageUrl = get(JSON.parse(response), 'url'); - let usersUrl = this.get('ghostPaths.url').api('users', user.id.toString()); + let [image] = get(JSON.parse(response), 'images'); + let imageUrl = image.url; - user.profile_image = imageUrl; + user.set('profileImage', imageUrl); - return yield this.get('ajax').put(usersUrl, { - data: { - users: [user] - } - }); + return yield user.save(); } }) });