From 808e1ac11cbbe6779dcaa42d5b4cdec900339ccd Mon Sep 17 00:00:00 2001
From: taehoon
Date: Wed, 13 Mar 2019 13:12:56 -0400
Subject: Switch to mastoapi for updating avatar
# Conflicts:
# src/services/api/api.service.js
---
src/services/api/api.service.js | 28 ++++++++--------------------
1 file changed, 8 insertions(+), 20 deletions(-)
(limited to 'src/services/api/api.service.js')
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 6b255e9f..0540b2d2 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -3,7 +3,6 @@ const LOGIN_URL = '/api/account/verify_credentials.json'
const ALL_FOLLOWING_URL = '/api/qvitter/allfollowing'
const MENTIONS_URL = '/api/statuses/mentions.json'
const REGISTRATION_URL = '/api/account/register.json'
-const AVATAR_UPDATE_URL = '/api/qvitter/update_avatar.json'
const BG_UPDATE_URL = '/api/qvitter/update_background_image.json'
const BANNER_UPDATE_URL = '/api/account/update_profile_banner.json'
const PROFILE_UPDATE_URL = '/api/account/update_profile.json'
@@ -49,6 +48,7 @@ const MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`
const MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`
const MASTODON_POST_STATUS_URL = '/api/v1/statuses'
const MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'
+const MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'
import { each, map, concat, last } from 'lodash'
import { parseStatus, parseUser, parseNotification, parseAttachment } from '../entity_normalizer/entity_normalizer.service.js'
@@ -78,28 +78,16 @@ const promisedRequest = (url, options) => {
})
}
-// Params
-// cropH
-// cropW
-// cropX
-// cropY
-// img (base 64 encodend data url)
-const updateAvatar = ({credentials, params}) => {
- let url = AVATAR_UPDATE_URL
-
+const updateAvatar = ({credentials, avatar}) => {
const form = new FormData()
-
- each(params, (value, key) => {
- if (value) {
- form.append(key, value)
- }
- })
-
- return fetch(url, {
+ form.append('avatar', avatar)
+ return fetch(MASTODON_PROFILE_UPDATE_URL, {
headers: authHeaders(credentials),
- method: 'POST',
+ method: 'PATCH',
body: form
- }).then((data) => data.json())
+ })
+ .then((data) => data.json())
+ .then((data) => parseUser(data))
}
const updateBg = ({credentials, params}) => {
--
cgit v1.2.3-70-g09d2
From 909d11825d83201bf9ff0ec9491e6361f511ca0f Mon Sep 17 00:00:00 2001
From: taehoon
Date: Wed, 13 Mar 2019 13:56:28 -0400
Subject: Switch to mastoapi for updating banner
---
src/components/user_settings/user_settings.js | 32 +++++++---------------
src/services/api/api.service.js | 27 +++++-------------
.../backend_interactor_service.js | 2 +-
3 files changed, 18 insertions(+), 43 deletions(-)
(limited to 'src/services/api/api.service.js')
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index 1e2422bb..bc824393 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -160,6 +160,7 @@ const UserSettings = {
reader.onload = ({target}) => {
const img = target.result
this[slot + 'Preview'] = img
+ this[slot] = file
}
reader.readAsDataURL(file)
},
@@ -190,30 +191,17 @@ const UserSettings = {
submitBanner () {
if (!this.bannerPreview) { return }
- let banner = this.bannerPreview
- // eslint-disable-next-line no-undef
- let imginfo = new Image()
- /* eslint-disable camelcase */
- let offset_top, offset_left, width, height
- imginfo.src = banner
- width = imginfo.width
- height = imginfo.height
- offset_top = 0
- offset_left = 0
this.bannerUploading = true
- this.$store.state.api.backendInteractor.updateBanner({params: {banner, offset_top, offset_left, width, height}}).then((data) => {
- if (!data.error) {
- let clone = JSON.parse(JSON.stringify(this.$store.state.users.currentUser))
- clone.cover_photo = data.url
- this.$store.commit('addNewUsers', [clone])
- this.$store.commit('setCurrentUser', clone)
+ this.$store.state.api.backendInteractor.updateBanner({banner: this.banner})
+ .then((user) => {
+ this.$store.commit('addNewUsers', [user])
+ this.$store.commit('setCurrentUser', user)
this.bannerPreview = null
- } else {
- this.bannerUploadError = this.$t('upload.error.base') + data.error
- }
- this.bannerUploading = false
- })
- /* eslint-enable camelcase */
+ })
+ .catch((err) => {
+ this.bannerUploadError = this.$t('upload.error.base') + ' ' + err.message
+ })
+ .then(() => { this.bannerUploading = false })
},
submitBg () {
if (!this.backgroundPreview) { return }
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 0540b2d2..eaebb3f1 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -4,7 +4,6 @@ const ALL_FOLLOWING_URL = '/api/qvitter/allfollowing'
const MENTIONS_URL = '/api/statuses/mentions.json'
const REGISTRATION_URL = '/api/account/register.json'
const BG_UPDATE_URL = '/api/qvitter/update_background_image.json'
-const BANNER_UPDATE_URL = '/api/account/update_profile_banner.json'
const PROFILE_UPDATE_URL = '/api/account/update_profile.json'
const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json'
const QVITTER_USER_NOTIFICATIONS_READ_URL = '/api/qvitter/statuses/notifications/read.json'
@@ -108,28 +107,16 @@ const updateBg = ({credentials, params}) => {
}).then((data) => data.json())
}
-// Params
-// height
-// width
-// offset_left
-// offset_top
-// banner (base 64 encodend data url)
-const updateBanner = ({credentials, params}) => {
- let url = BANNER_UPDATE_URL
-
+const updateBanner = ({credentials, banner}) => {
const form = new FormData()
-
- each(params, (value, key) => {
- if (value) {
- form.append(key, value)
- }
- })
-
- return fetch(url, {
+ form.append('header', banner)
+ return fetch(MASTODON_PROFILE_UPDATE_URL, {
headers: authHeaders(credentials),
- method: 'POST',
+ method: 'PATCH',
body: form
- }).then((data) => data.json())
+ })
+ .then((data) => data.json())
+ .then((data) => parseUser(data))
}
// Params
diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js
index 762ee08b..d61ff452 100644
--- a/src/services/backend_interactor_service/backend_interactor_service.js
+++ b/src/services/backend_interactor_service/backend_interactor_service.js
@@ -103,7 +103,7 @@ const backendInteractorService = (credentials) => {
const register = (params) => apiService.register(params)
const updateAvatar = ({avatar}) => apiService.updateAvatar({credentials, avatar})
const updateBg = ({params}) => apiService.updateBg({credentials, params})
- const updateBanner = ({params}) => apiService.updateBanner({credentials, params})
+ const updateBanner = ({banner}) => apiService.updateBanner({credentials, banner})
const updateProfile = ({params}) => apiService.updateProfile({credentials, params})
const externalProfile = (profileUrl) => apiService.externalProfile({profileUrl, credentials})
--
cgit v1.2.3-70-g09d2
From e14720419f743f630eec8a671833eb08923e3dee Mon Sep 17 00:00:00 2001
From: taehoon
Date: Sat, 16 Mar 2019 08:40:46 -0400
Subject: Switch to mastoapi for updating user profile
---
src/components/user_settings/user_settings.js | 14 ++++++--------
src/services/api/api.service.js | 13 ++++++-------
2 files changed, 12 insertions(+), 15 deletions(-)
(limited to 'src/services/api/api.service.js')
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index bc824393..6b367e4f 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -110,11 +110,11 @@ const UserSettings = {
},
methods: {
updateProfile () {
- const name = this.newName
- const description = this.newBio
+ const note = this.newBio
const locked = this.newLocked
// Backend notation.
/* eslint-disable camelcase */
+ const display_name = this.newName
const default_scope = this.newDefaultScope
const no_rich_text = this.newNoRichText
const hide_follows = this.hideFollows
@@ -125,8 +125,8 @@ const UserSettings = {
this.$store.state.api.backendInteractor
.updateProfile({
params: {
- name,
- description,
+ display_name,
+ note,
locked,
// Backend notation.
/* eslint-disable camelcase */
@@ -137,10 +137,8 @@ const UserSettings = {
show_role
/* eslint-enable camelcase */
}}).then((user) => {
- if (!user.error) {
- this.$store.commit('addNewUsers', [user])
- this.$store.commit('setCurrentUser', user)
- }
+ this.$store.commit('addNewUsers', [user])
+ this.$store.commit('setCurrentUser', user)
})
},
changeVis (visibility) {
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index eaebb3f1..9338c495 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -4,7 +4,6 @@ const ALL_FOLLOWING_URL = '/api/qvitter/allfollowing'
const MENTIONS_URL = '/api/statuses/mentions.json'
const REGISTRATION_URL = '/api/account/register.json'
const BG_UPDATE_URL = '/api/qvitter/update_background_image.json'
-const PROFILE_UPDATE_URL = '/api/account/update_profile.json'
const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json'
const QVITTER_USER_NOTIFICATIONS_READ_URL = '/api/qvitter/statuses/notifications/read.json'
const FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'
@@ -126,9 +125,7 @@ const updateBanner = ({credentials, banner}) => {
// description
const updateProfile = ({credentials, params}) => {
// Always include these fields, because they might be empty or false
- const fields = ['description', 'locked', 'no_rich_text', 'hide_follows', 'hide_followers', 'show_role']
- let url = PROFILE_UPDATE_URL
-
+ const fields = ['note', 'locked', 'no_rich_text', 'hide_follows', 'hide_followers', 'show_role']
const form = new FormData()
each(params, (value, key) => {
@@ -136,11 +133,13 @@ const updateProfile = ({credentials, params}) => {
form.append(key, value)
}
})
- return fetch(url, {
+ return fetch(MASTODON_PROFILE_UPDATE_URL, {
headers: authHeaders(credentials),
- method: 'POST',
+ method: 'PATCH',
body: form
- }).then((data) => data.json())
+ })
+ .then((data) => data.json())
+ .then((data) => parseUser(data))
}
// Params needed:
--
cgit v1.2.3-70-g09d2
From 904a64de8951356d0e1a798349661039d5821d32 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Sat, 27 Apr 2019 14:20:32 -0400
Subject: use json content type
---
src/services/api/api.service.js | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
(limited to 'src/services/api/api.service.js')
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 9338c495..1cf47bb8 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -118,27 +118,16 @@ const updateBanner = ({credentials, banner}) => {
.then((data) => parseUser(data))
}
-// Params
-// name
-// url
-// location
-// description
const updateProfile = ({credentials, params}) => {
- // Always include these fields, because they might be empty or false
- const fields = ['note', 'locked', 'no_rich_text', 'hide_follows', 'hide_followers', 'show_role']
- const form = new FormData()
-
- each(params, (value, key) => {
- if (fields.includes(key) || value) {
- form.append(key, value)
- }
- })
- return fetch(MASTODON_PROFILE_UPDATE_URL, {
- headers: authHeaders(credentials),
+ return promisedRequest(MASTODON_PROFILE_UPDATE_URL, {
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json',
+ ...authHeaders(credentials)
+ },
method: 'PATCH',
- body: form
+ body: JSON.stringify(params)
})
- .then((data) => data.json())
.then((data) => parseUser(data))
}
--
cgit v1.2.3-70-g09d2