From 3255950b0e9a16f2a477d606b91d90bed8a6cef7 Mon Sep 17 00:00:00 2001 From: taehoon Date: Sun, 24 Feb 2019 03:02:04 -0500 Subject: Add mute/unmute featrue and mutes management tab --- src/modules/users.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 1fe12fc8..9c89f34a 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -177,9 +177,14 @@ const users = { return blocks }) }, - blockUser (store, id) { - return store.rootState.api.backendInteractor.blockUser(id) - .then((user) => store.commit('addNewUsers', [user])) + blockUser (store, userId) { + return store.rootState.api.backendInteractor.blockUser(userId) + .then((blockedUser) => { + store.commit('addNewUsers', [blockedUser]) + store.commit('removeStatus', { timeline: 'friends', userId }) + store.commit('removeStatus', { timeline: 'public', userId }) + store.commit('removeStatus', { timeline: 'publicAndExternal', userId }) + }) }, unblockUser (store, id) { return store.rootState.api.backendInteractor.unblockUser(id) @@ -188,18 +193,26 @@ const users = { fetchMutes (store) { return store.rootState.api.backendInteractor.fetchMutes() .then((mutedUsers) => { - each(mutedUsers, (user) => { user.muted = true }) + each(mutedUsers, (user) => { user.mastodonMuted = true }) store.commit('addNewUsers', mutedUsers) store.commit('saveMutes', map(mutedUsers, 'id')) }) }, muteUser (store, id) { - return store.state.api.backendInteractor.setUserMute({ id, muted: true }) - .then((user) => store.commit('addNewUsers', [user])) + return store.rootState.api.backendInteractor.muteUser(id) + .then(() => { + const user = store.rootState.users.usersObject[id] + set(user, 'mastodonMuted', true) + store.commit('addNewUsers', [user]) + }) }, unmuteUser (store, id) { - return store.state.api.backendInteractor.setUserMute({ id, muted: false }) - .then((user) => store.commit('addNewUsers', [user])) + return store.rootState.api.backendInteractor.unmuteUser(id) + .then(() => { + const user = store.rootState.users.usersObject[id] + set(user, 'mastodonMuted', false) + store.commit('addNewUsers', [user]) + }) }, addFriends ({ rootState, commit }, fetchBy) { return new Promise((resolve, reject) => { @@ -350,9 +363,6 @@ const users = { // Start getting fresh posts. store.dispatch('startFetching', { timeline: 'friends' }) - // Get user mutes - store.dispatch('fetchMutes') - // Fetch our friends store.rootState.api.backendInteractor.fetchFriends({ id: user.id }) .then((friends) => commit('addNewUsers', friends)) -- cgit v1.2.3-70-g09d2 From f04cbc887595e842ab8b9dad6545f6e409e52ea1 Mon Sep 17 00:00:00 2001 From: taehoon Date: Sun, 24 Feb 2019 03:20:11 -0500 Subject: Add mute/unmute mutations --- src/modules/users.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 9c89f34a..f53245a2 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -108,6 +108,14 @@ export const mutations = { saveMutes (state, muteIds) { state.currentUser.muteIds = muteIds }, + muteUser (state, id) { + const user = state.usersObject[id] + set(user, 'mastodonMuted', true) + }, + unmuteUser (state, id) { + const user = state.usersObject[id] + set(user, 'mastodonMuted', false) + }, setUserForStatus (state, status) { status.user = state.usersObject[status.user.id] }, @@ -200,19 +208,11 @@ const users = { }, muteUser (store, id) { return store.rootState.api.backendInteractor.muteUser(id) - .then(() => { - const user = store.rootState.users.usersObject[id] - set(user, 'mastodonMuted', true) - store.commit('addNewUsers', [user]) - }) + .then(() => store.commit('muteUser', id)) }, unmuteUser (store, id) { return store.rootState.api.backendInteractor.unmuteUser(id) - .then(() => { - const user = store.rootState.users.usersObject[id] - set(user, 'mastodonMuted', false) - store.commit('addNewUsers', [user]) - }) + .then(() => store.commit('unmuteUser', id)) }, addFriends ({ rootState, commit }, fetchBy) { return new Promise((resolve, reject) => { -- cgit v1.2.3-70-g09d2 From 859ed4f34feffd4a975e6d865f82bc57224025f9 Mon Sep 17 00:00:00 2001 From: taehoon Date: Sun, 24 Feb 2019 03:21:21 -0500 Subject: Fetct full data of muted users after fetchMutes api call --- src/modules/users.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index f53245a2..af40be3d 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -200,6 +200,11 @@ const users = { }, fetchMutes (store) { return store.rootState.api.backendInteractor.fetchMutes() + .then((mutes) => { + // fetchMutes api doesn't return full user data, let's fetch full user data using separate api calls + const promises = mutes.map(({ id }) => store.rootState.api.backendInteractor.fetchUser({ id })) + return Promise.all(promises) + }) .then((mutedUsers) => { each(mutedUsers, (user) => { user.mastodonMuted = true }) store.commit('addNewUsers', mutedUsers) -- cgit v1.2.3-70-g09d2 From 302310a653083bc82226cf0743d52fc02c277a8a Mon Sep 17 00:00:00 2001 From: taehoon Date: Fri, 1 Mar 2019 11:37:34 -0500 Subject: Remove old muting logic --- src/components/mute_card/mute_card.js | 2 +- src/components/user_card/user_card.js | 10 ++-------- src/modules/users.js | 12 +++++++++--- src/services/api/api.service.js | 18 ------------------ .../backend_interactor_service.js | 5 ----- 5 files changed, 12 insertions(+), 35 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/components/mute_card/mute_card.js b/src/components/mute_card/mute_card.js index 5ef17b60..65c9cfb5 100644 --- a/src/components/mute_card/mute_card.js +++ b/src/components/mute_card/mute_card.js @@ -12,7 +12,7 @@ const MuteCard = { return this.$store.getters.findUser(this.userId) }, muted () { - return this.user.mastodonMuted + return this.user.muted } }, components: { diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index 61b784fe..197c61d5 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -126,18 +126,12 @@ export default { unblockUser () { this.$store.dispatch('unblockUser', this.user.id) }, - muteUser () { // Mastodon Mute + muteUser () { this.$store.dispatch('muteUser', this.user.id) }, - unmuteUser () { // Mastodon Unmute + unmuteUser () { this.$store.dispatch('unmuteUser', this.user.id) }, - toggleMute () { - // TODO: Pleroma mute/unmute, Need to migrate to the Mastodon API - const store = this.$store - store.commit('setMuted', {user: this.user, muted: !this.user.muted}) - store.state.api.backendInteractor.setUserMute(this.user) - }, setProfileView (v) { if (this.switcher) { const store = this.$store diff --git a/src/modules/users.js b/src/modules/users.js index af40be3d..5e53aafb 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -110,11 +110,11 @@ export const mutations = { }, muteUser (state, id) { const user = state.usersObject[id] - set(user, 'mastodonMuted', true) + set(user, 'muted', true) }, unmuteUser (state, id) { const user = state.usersObject[id] - set(user, 'mastodonMuted', false) + set(user, 'muted', false) }, setUserForStatus (state, status) { status.user = state.usersObject[status.user.id] @@ -206,9 +206,10 @@ const users = { return Promise.all(promises) }) .then((mutedUsers) => { - each(mutedUsers, (user) => { user.mastodonMuted = true }) + each(mutedUsers, (user) => { user.muted = true }) store.commit('addNewUsers', mutedUsers) store.commit('saveMutes', map(mutedUsers, 'id')) + // TODO: Unset muted property of the rest users }) }, muteUser (store, id) { @@ -368,6 +369,11 @@ const users = { // Start getting fresh posts. store.dispatch('startFetching', { timeline: 'friends' }) + // Fetch mutes + // TODO: We should not show timeline until fetchMutes is resolved + // However, we can get rid of this logic totally if we can know user muted state from user object + store.dispatch('fetchMutes') + // Fetch our friends store.rootState.api.backendInteractor.fetchFriends({ id: user.id }) .then((friends) => commit('addNewUsers', friends)) diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index 92abf94b..7da2758a 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -26,7 +26,6 @@ const MUTING_URL = '/api/v1/accounts/:id/mute' const UNMUTING_URL = '/api/v1/accounts/:id/unmute' const FOLLOWING_URL = '/api/friendships/create.json' 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' @@ -343,22 +342,6 @@ const fetchStatus = ({id, credentials}) => { .then((data) => parseStatus(data)) } -const setUserMute = ({id, credentials, muted = true}) => { - const form = new FormData() - - const muteInteger = muted ? 1 : 0 - - form.append('namespace', 'qvitter') - form.append('data', muteInteger) - form.append('topic', `mute:${id}`) - - return fetch(QVITTER_USER_PREF_URL, { - method: 'POST', - headers: authHeaders(credentials), - body: form - }) -} - const fetchTimeline = ({timeline, credentials, since = false, until = false, userId = false, tag = false}) => { const timelineUrls = { public: PUBLIC_TIMELINE_URL, @@ -652,7 +635,6 @@ const apiService = { deleteStatus, uploadMedia, fetchAllFollowing, - setUserMute, fetchMutes, muteUser, unmuteUser, diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js index 674fb4a4..0f0bcddc 100644 --- a/src/services/backend_interactor_service/backend_interactor_service.js +++ b/src/services/backend_interactor_service/backend_interactor_service.js @@ -62,10 +62,6 @@ const backendInteractorService = (credentials) => { return timelineFetcherService.startFetching({timeline, store, credentials, userId, tag}) } - const setUserMute = ({id, muted = true}) => { - return apiService.setUserMute({id, muted, credentials}) - } - const fetchMutes = () => apiService.fetchMutes({credentials}) const muteUser = (id) => apiService.muteUser({credentials, id}) const unmuteUser = (id) => apiService.unmuteUser({credentials, id}) @@ -102,7 +98,6 @@ const backendInteractorService = (credentials) => { fetchAllFollowing, verifyCredentials: apiService.verifyCredentials, startFetching, - setUserMute, fetchMutes, muteUser, unmuteUser, -- cgit v1.2.3-70-g09d2 From 9b690209d056d82fa855b682ffeb74378128460e Mon Sep 17 00:00:00 2001 From: taehoon Date: Fri, 1 Mar 2019 13:30:01 -0500 Subject: Reset old mutes state after fetching new mutes data --- src/modules/users.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 5e53aafb..668ebabd 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -102,10 +102,15 @@ export const mutations = { } }) }, - saveBlocks (state, blockIds) { + saveBlockIds (state, blockIds) { state.currentUser.blockIds = blockIds }, - saveMutes (state, muteIds) { + updateMutes (state, mutedUsers) { + each(state.users, (user) => { user.muted = false }) + const newUsers = map(mutedUsers, (user) => ({ ...user, muted: true })) + each(newUsers, (user) => mergeOrAdd(state.users, state.usersObject, user)) + }, + saveMuteIds (state, muteIds) { state.currentUser.muteIds = muteIds }, muteUser (state, id) { @@ -180,7 +185,7 @@ const users = { fetchBlocks (store) { return store.rootState.api.backendInteractor.fetchBlocks() .then((blocks) => { - store.commit('saveBlocks', map(blocks, 'id')) + store.commit('saveBlockIds', map(blocks, 'id')) store.commit('addNewUsers', blocks) return blocks }) @@ -205,11 +210,10 @@ const users = { const promises = mutes.map(({ id }) => store.rootState.api.backendInteractor.fetchUser({ id })) return Promise.all(promises) }) - .then((mutedUsers) => { - each(mutedUsers, (user) => { user.muted = true }) - store.commit('addNewUsers', mutedUsers) - store.commit('saveMutes', map(mutedUsers, 'id')) - // TODO: Unset muted property of the rest users + .then((mutes) => { + store.commit('updateMutes', mutes) + store.commit('saveMuteIds', map(mutes, 'id')) + return mutes }) }, muteUser (store, id) { -- cgit v1.2.3-70-g09d2 From 300259fd976bb4496c5e1cca0df9bd47a1947259 Mon Sep 17 00:00:00 2001 From: taehoon Date: Sat, 2 Mar 2019 06:47:05 -0500 Subject: Add todo comment --- src/modules/users.js | 1 + 1 file changed, 1 insertion(+) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 668ebabd..79046371 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -107,6 +107,7 @@ export const mutations = { }, updateMutes (state, mutedUsers) { each(state.users, (user) => { user.muted = false }) + // TODO: Remove this line once we get muted property of user object from the api const newUsers = map(mutedUsers, (user) => ({ ...user, muted: true })) each(newUsers, (user) => mergeOrAdd(state.users, state.usersObject, user)) }, -- cgit v1.2.3-70-g09d2 From d7919109ec30c5a75690d6c5b26f1ecebe74d7bf Mon Sep 17 00:00:00 2001 From: taehoon Date: Sat, 2 Mar 2019 08:20:56 -0500 Subject: Reset statusnet_blocking of all fetched users first while refreshing block list --- src/modules/users.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 79046371..dd729410 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -102,6 +102,11 @@ export const mutations = { } }) }, + updateBlocks (state, blockedUsers) { + // Reset statusnet_blocking of all fetched users + each(state.users, (user) => { user.statusnet_blocking = false }) + each(blockedUsers, (user) => mergeOrAdd(state.users, state.usersObject, user)) + }, saveBlockIds (state, blockIds) { state.currentUser.blockIds = blockIds }, @@ -187,7 +192,7 @@ const users = { return store.rootState.api.backendInteractor.fetchBlocks() .then((blocks) => { store.commit('saveBlockIds', map(blocks, 'id')) - store.commit('addNewUsers', blocks) + store.commit('updateBlocks', blocks) return blocks }) }, -- cgit v1.2.3-70-g09d2 From a0bccbce9452c21cc075ecc5ba99c1e99a85dbed Mon Sep 17 00:00:00 2001 From: taehoon Date: Sat, 2 Mar 2019 08:21:15 -0500 Subject: Add comment --- src/modules/users.js | 1 + 1 file changed, 1 insertion(+) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index dd729410..d75ac9d4 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -111,6 +111,7 @@ export const mutations = { state.currentUser.blockIds = blockIds }, updateMutes (state, mutedUsers) { + // Reset muted of all fetched users each(state.users, (user) => { user.muted = false }) // TODO: Remove this line once we get muted property of user object from the api const newUsers = map(mutedUsers, (user) => ({ ...user, muted: true })) -- cgit v1.2.3-70-g09d2 From 883a84b31306f2725737ee408900e20b57dbfdf6 Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 21 Mar 2019 21:30:30 -0400 Subject: No need to fetch user data using old api anymore 🎉 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/users.js | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index d75ac9d4..83c90ea5 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -212,11 +212,6 @@ const users = { }, fetchMutes (store) { return store.rootState.api.backendInteractor.fetchMutes() - .then((mutes) => { - // fetchMutes api doesn't return full user data, let's fetch full user data using separate api calls - const promises = mutes.map(({ id }) => store.rootState.api.backendInteractor.fetchUser({ id })) - return Promise.all(promises) - }) .then((mutes) => { store.commit('updateMutes', mutes) store.commit('saveMuteIds', map(mutes, 'id')) -- cgit v1.2.3-70-g09d2 From 379e33f6a531fad17477c43e0112941343c737ef Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 21 Mar 2019 21:31:16 -0400 Subject: masto api sends muted property now --- src/modules/users.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 83c90ea5..ca4358ca 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -113,9 +113,7 @@ export const mutations = { updateMutes (state, mutedUsers) { // Reset muted of all fetched users each(state.users, (user) => { user.muted = false }) - // TODO: Remove this line once we get muted property of user object from the api - const newUsers = map(mutedUsers, (user) => ({ ...user, muted: true })) - each(newUsers, (user) => mergeOrAdd(state.users, state.usersObject, user)) + each(mutedUsers, (user) => mergeOrAdd(state.users, state.usersObject, user)) }, saveMuteIds (state, muteIds) { state.currentUser.muteIds = muteIds -- cgit v1.2.3-70-g09d2 From 8702d23a137d06607fc525b6c791abe24ed021ff Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 21 Mar 2019 21:44:59 -0400 Subject: switch to mastoapi --- src/modules/users.js | 6 +++--- src/services/api/api.service.js | 10 ++++------ 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index ca4358ca..f12348d4 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -197,8 +197,8 @@ const users = { }, blockUser (store, userId) { return store.rootState.api.backendInteractor.blockUser(userId) - .then((blockedUser) => { - store.commit('addNewUsers', [blockedUser]) + .then((relationship) => { + store.commit('updateUserRelationship', [relationship]) store.commit('removeStatus', { timeline: 'friends', userId }) store.commit('removeStatus', { timeline: 'public', userId }) store.commit('removeStatus', { timeline: 'publicAndExternal', userId }) @@ -206,7 +206,7 @@ const users = { }, unblockUser (store, id) { return store.rootState.api.backendInteractor.unblockUser(id) - .then((user) => store.commit('addNewUsers', [user])) + .then((relationship) => store.commit('updateUserRelationship', [relationship])) }, fetchMutes (store) { return store.rootState.api.backendInteractor.fetchMutes() diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index c3f863c8..36441017 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -30,8 +30,6 @@ const PROFILE_UPDATE_URL = '/api/account/update_profile.json' const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json' const QVITTER_USER_NOTIFICATIONS_URL = '/api/qvitter/statuses/notifications.json' const QVITTER_USER_NOTIFICATIONS_READ_URL = '/api/qvitter/statuses/notifications/read.json' -const BLOCKING_URL = '/api/blocks/create.json' -const UNBLOCKING_URL = '/api/blocks/destroy.json' const FOLLOW_IMPORT_URL = '/api/pleroma/follow_import' const DELETE_ACCOUNT_URL = '/api/pleroma/delete_account' const CHANGE_PASSWORD_URL = '/api/pleroma/change_password' @@ -46,6 +44,8 @@ const MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships' const MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses` const MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/' const MASTODON_USER_MUTES_URL = '/api/v1/mutes/' +const MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block` +const MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock` import { each, map } from 'lodash' import { parseStatus, parseUser, parseNotification } from '../entity_normalizer/entity_normalizer.service.js' @@ -228,16 +228,14 @@ const unfollowUser = ({id, credentials}) => { } const blockUser = ({id, credentials}) => { - let url = `${BLOCKING_URL}?user_id=${id}` - return fetch(url, { + return fetch(MASTODON_BLOCK_USER_URL(id), { headers: authHeaders(credentials), method: 'POST' }).then((data) => data.json()) } const unblockUser = ({id, credentials}) => { - let url = `${UNBLOCKING_URL}?user_id=${id}` - return fetch(url, { + return fetch(MASTODON_UNBLOCK_USER_URL(id), { headers: authHeaders(credentials), method: 'POST' }).then((data) => data.json()) -- cgit v1.2.3-70-g09d2 From a64e744c1b4aca4bd4ec2ba78a364dd2bbf81b47 Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 21 Mar 2019 21:53:24 -0400 Subject: switch to mastoapi --- src/modules/users.js | 12 ++---------- src/services/api/api.service.js | 11 ++++------- src/utils/url.js | 9 --------- 3 files changed, 6 insertions(+), 26 deletions(-) delete mode 100644 src/utils/url.js (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index f12348d4..bb9a717f 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -118,14 +118,6 @@ export const mutations = { saveMuteIds (state, muteIds) { state.currentUser.muteIds = muteIds }, - muteUser (state, id) { - const user = state.usersObject[id] - set(user, 'muted', true) - }, - unmuteUser (state, id) { - const user = state.usersObject[id] - set(user, 'muted', false) - }, setUserForStatus (state, status) { status.user = state.usersObject[status.user.id] }, @@ -218,11 +210,11 @@ const users = { }, muteUser (store, id) { return store.rootState.api.backendInteractor.muteUser(id) - .then(() => store.commit('muteUser', id)) + .then((relationship) => store.commit('updateUserRelationship', [relationship])) }, unmuteUser (store, id) { return store.rootState.api.backendInteractor.unmuteUser(id) - .then(() => store.commit('unmuteUser', id)) + .then((relationship) => store.commit('updateUserRelationship', [relationship])) }, addFriends ({ rootState, commit }, fetchBy) { return new Promise((resolve, reject) => { diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index 36441017..8586f993 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -18,8 +18,6 @@ const MENTIONS_URL = '/api/statuses/mentions.json' const DM_TIMELINE_URL = '/api/statuses/dm_timeline.json' const FOLLOWERS_URL = '/api/statuses/followers.json' const FRIENDS_URL = '/api/statuses/friends.json' -const MUTING_URL = '/api/v1/accounts/:id/mute' -const UNMUTING_URL = '/api/v1/accounts/:id/unmute' const FOLLOWING_URL = '/api/friendships/create.json' const UNFOLLOWING_URL = '/api/friendships/destroy.json' const REGISTRATION_URL = '/api/account/register.json' @@ -46,12 +44,13 @@ const MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/' const MASTODON_USER_MUTES_URL = '/api/v1/mutes/' const MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block` const MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock` +const MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute` +const MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute` import { each, map } from 'lodash' import { parseStatus, parseUser, parseNotification } from '../entity_normalizer/entity_normalizer.service.js' import 'whatwg-fetch' import { StatusCodeError } from '../errors/errors' -import { generateUrl } from '../../utils/url' const oldfetch = window.fetch @@ -533,16 +532,14 @@ const fetchMutes = ({credentials}) => { } const muteUser = ({id, credentials}) => { - const url = generateUrl(MUTING_URL, { id }) - return promisedRequest(url, { + return promisedRequest(MASTODON_MUTE_USER_URL(id), { headers: authHeaders(credentials), method: 'POST' }) } const unmuteUser = ({id, credentials}) => { - const url = generateUrl(UNMUTING_URL, { id }) - return promisedRequest(url, { + return promisedRequest(MASTODON_UNMUTE_USER_URL(id), { headers: authHeaders(credentials), method: 'POST' }) diff --git a/src/utils/url.js b/src/utils/url.js deleted file mode 100644 index 79ea7394..00000000 --- a/src/utils/url.js +++ /dev/null @@ -1,9 +0,0 @@ -// Generate url based on template -// Example: /api/v1/accounts/:id/mute -> /api/v1/accounts/123/mute -export const generateUrl = (template, params = {}) => { - let url = template - Object.entries(params).forEach(([key, value]) => { - url = url.replace(':' + key, value) - }) - return url -} -- cgit v1.2.3-70-g09d2 From 9fa1bc63b0d95a2cd0868c0356953117e25f0328 Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 21 Mar 2019 21:58:02 -0400 Subject: No need to fetch mutes on load anymore 🙌 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/users.js | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index bb9a717f..9b7b29e7 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -365,11 +365,6 @@ const users = { // Start getting fresh posts. store.dispatch('startFetching', { timeline: 'friends' }) - // Fetch mutes - // TODO: We should not show timeline until fetchMutes is resolved - // However, we can get rid of this logic totally if we can know user muted state from user object - store.dispatch('fetchMutes') - // Fetch our friends store.rootState.api.backendInteractor.fetchFriends({ id: user.id }) .then((friends) => commit('addNewUsers', friends)) -- cgit v1.2.3-70-g09d2 From f03747e84124ea45efd16a2f386d7f14996f736a Mon Sep 17 00:00:00 2001 From: taehoon Date: Sun, 24 Mar 2019 13:04:47 -0400 Subject: Revert changes --- src/modules/users.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/modules/users.js') diff --git a/src/modules/users.js b/src/modules/users.js index 9b7b29e7..f83ae298 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -365,6 +365,9 @@ const users = { // Start getting fresh posts. store.dispatch('startFetching', { timeline: 'friends' }) + // Get user mutes + store.dispatch('fetchMutes') + // Fetch our friends store.rootState.api.backendInteractor.fetchFriends({ id: user.id }) .then((friends) => commit('addNewUsers', friends)) -- cgit v1.2.3-70-g09d2