diff options
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/api/api.service.js | 68 | ||||
| -rw-r--r-- | src/services/backend_interactor_service/backend_interactor_service.js | 7 | ||||
| -rw-r--r-- | src/services/status_poster/status_poster.service.js | 20 |
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 + } }) } |
