aboutsummaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
Diffstat (limited to 'src/services')
-rw-r--r--src/services/api/api.service.js68
-rw-r--r--src/services/backend_interactor_service/backend_interactor_service.js7
-rw-r--r--src/services/status_poster/status_poster.service.js20
3 files changed, 89 insertions, 6 deletions
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index c4949db0..d2aa5d58 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -20,6 +20,9 @@ const UNFOLLOWING_URL = '/api/friendships/destroy.json'
const QVITTER_USER_PREF_URL = '/api/qvitter/set_profile_pref.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'
const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json'
const QVITTER_USER_TIMELINE_URL = '/api/qvitter/statuses/user_timeline.json'
// const USER_URL = '/api/users/show.json'
@@ -58,6 +61,68 @@ const updateAvatar = ({credentials, params}) => {
}).then((data) => data.json())
}
+const updateBg = ({credentials, params}) => {
+ let url = BG_UPDATE_URL
+
+ const form = new FormData()
+
+ each(params, (value, key) => {
+ if (value) {
+ form.append(key, value)
+ }
+ })
+ return fetch(url, {
+ headers: authHeaders(credentials),
+ method: 'POST',
+ body: form
+ }).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 form = new FormData()
+
+ each(params, (value, key) => {
+ if (value) {
+ form.append(key, value)
+ }
+ })
+ return fetch(url, {
+ headers: authHeaders(credentials),
+ method: 'POST',
+ body: form
+ }).then((data) => data.json())
+}
+
+// Params
+// name
+// url
+// location
+// description
+const updateProfile = ({credentials, params}) => {
+ let url = PROFILE_UPDATE_URL
+
+ const form = new FormData()
+
+ each(params, (value, key) => {
+ if (value) {
+ form.append(key, value)
+ }
+ })
+ return fetch(url, {
+ headers: authHeaders(credentials),
+ method: 'POST',
+ body: form
+ }).then((data) => data.json())
+}
+
// Params needed:
// nickname
// email
@@ -282,6 +347,9 @@ const apiService = {
fetchMutes,
register,
updateAvatar,
+ updateBg,
+ updateProfile,
+ updateBanner,
externalProfile
}
diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js
index 4b0c9052..9a0910dd 100644
--- a/src/services/backend_interactor_service/backend_interactor_service.js
+++ b/src/services/backend_interactor_service/backend_interactor_service.js
@@ -42,6 +42,10 @@ const backendInteractorService = (credentials) => {
const register = (params) => apiService.register(params)
const updateAvatar = ({params}) => apiService.updateAvatar({credentials, params})
+ const updateBg = ({params}) => apiService.updateBg({credentials, params})
+ const updateBanner = ({params}) => apiService.updateBanner({credentials, params})
+ const updateProfile = ({params}) => apiService.updateProfile({credentials, params})
+
const externalProfile = (profileUrl) => apiService.externalProfile(profileUrl)
const backendInteractorServiceInstance = {
@@ -58,6 +62,9 @@ const backendInteractorService = (credentials) => {
fetchMutes,
register,
updateAvatar,
+ updateBg,
+ updateBanner,
+ updateProfile,
externalProfile
}
diff --git a/src/services/status_poster/status_poster.service.js b/src/services/status_poster/status_poster.service.js
index bc1fd37d..001ff8a5 100644
--- a/src/services/status_poster/status_poster.service.js
+++ b/src/services/status_poster/status_poster.service.js
@@ -7,12 +7,20 @@ const postStatus = ({ store, status, media = [], inReplyToStatusId = undefined }
return apiService.postStatus({credentials: store.state.users.currentUser.credentials, status, mediaIds, inReplyToStatusId})
.then((data) => data.json())
.then((data) => {
- store.dispatch('addNewStatuses', {
- statuses: [data],
- timeline: 'friends',
- showImmediately: true,
- noIdUpdate: true // To prevent missing notices on next pull.
- })
+ if (!data.error) {
+ store.dispatch('addNewStatuses', {
+ statuses: [data],
+ timeline: 'friends',
+ showImmediately: true,
+ noIdUpdate: true // To prevent missing notices on next pull.
+ })
+ }
+ return data
+ })
+ .catch((err) => {
+ return {
+ error: err.message
+ }
})
}