wire up notification settings

This commit is contained in:
William Pitcock 2019-05-25 07:01:02 +00:00
parent ab34a75bcf
commit 28ca504576
6 changed files with 87 additions and 3 deletions

View file

@ -16,6 +16,7 @@ const PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${
const ACTIVATION_STATUS_URL = screenName => `/api/pleroma/admin/users/${screenName}/activation_status`
const ADMIN_USERS_URL = '/api/pleroma/admin/users'
const SUGGESTIONS_URL = '/api/v1/suggestions'
const NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'
const MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'
const MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'
@ -97,6 +98,21 @@ const promisedRequest = ({ method, url, payload, credentials, headers = {} }) =>
})
}
const updateNotificationSettings = ({credentials, settings}) => {
const form = new FormData()
each(settings, (value, key) => {
form.append(key, value)
})
return fetch(NOTIFICATION_SETTINGS_URL, {
headers: authHeaders(credentials),
method: 'PUT',
body: form
})
.then((data) => data.json())
}
const updateAvatar = ({credentials, avatar}) => {
const form = new FormData()
form.append('avatar', avatar)
@ -767,7 +783,8 @@ const apiService = {
markNotificationsAsSeen,
fetchFavoritedByUsers,
fetchRebloggedByUsers,
reportUser
reportUser,
updateNotificationSettings
}
export default apiService

View file

@ -87,6 +87,10 @@ const backendInteractorService = (credentials) => {
return apiService.deleteUser({screen_name, credentials})
}
const updateNotificationSettings = ({settings}) => {
return apiService.updateNotificationSettings({credentials, settings})
}
const fetchMutes = () => apiService.fetchMutes({credentials})
const muteUser = (id) => apiService.muteUser({credentials, id})
const unmuteUser = (id) => apiService.unmuteUser({credentials, id})
@ -171,7 +175,8 @@ const backendInteractorService = (credentials) => {
favorite,
unfavorite,
retweet,
unretweet
unretweet,
updateNotificationSettings
}
return backendInteractorServiceInstance

View file

@ -141,8 +141,13 @@ export const parseUser = (data) => {
output.deactivated = data.pleroma.deactivated
}
if (data.pleroma) {
output.notification_settings = data.pleroma.notification_settings
}
output.tags = output.tags || []
output.rights = output.rights || {}
output.notification_settings = output.notification_settings || {}
return output
}