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 e617ed285e8ecb13829558197bdf04ffb9583ea9 Mon Sep 17 00:00:00 2001
From: Henry Jameson
Date: Fri, 22 Mar 2019 00:05:20 +0200
Subject: reactivity fixes
---
src/modules/statuses.js | 3 ++-
src/modules/users.js | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
(limited to 'src/modules/users.js')
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index f14b8703..a16342e0 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -1,4 +1,5 @@
import { remove, slice, each, find, maxBy, minBy, merge, first, last, isArray, omitBy } from 'lodash'
+import { set } from 'vue'
import apiService from '../services/api/api.service.js'
// import parse from '../services/status_parser/status_parser.js'
@@ -82,7 +83,7 @@ const mergeOrAdd = (arr, obj, item) => {
// This is a new item, prepare it
prepareStatus(item)
arr.push(item)
- obj[item.id] = item
+ set(obj, item.id, item)
return {item, new: true}
}
}
diff --git a/src/modules/users.js b/src/modules/users.js
index 1fe12fc8..2950971f 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -16,9 +16,9 @@ export const mergeOrAdd = (arr, obj, item) => {
} else {
// This is a new item, prepare it
arr.push(item)
- obj[item.id] = item
+ set(obj, item.id, item)
if (item.screen_name && !item.screen_name.includes('@')) {
- obj[item.screen_name.toLowerCase()] = item
+ set(obj, item.screen_name.toLowerCase(), item)
}
return { item, new: 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