remaining backend interactor removals
This commit is contained in:
parent
28efd7ebd2
commit
0d9709825f
45 changed files with 1118 additions and 856 deletions
|
|
@ -1,20 +1,28 @@
|
|||
import { Socket } from 'phoenix'
|
||||
|
||||
import { WSConnectionStatus } from '../services/api/api.service.js'
|
||||
import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'
|
||||
import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'
|
||||
|
||||
import { useCredentialsStore } from 'src/stores/credentials.js'
|
||||
import { useInstanceStore } from 'src/stores/instance.js'
|
||||
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'
|
||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||
import { useShoutStore } from 'src/stores/shout.js'
|
||||
|
||||
import {
|
||||
fetchTimeline,
|
||||
getMastodonSocketURI,
|
||||
ProcessedWS,
|
||||
} from 'src/services/api/api.service.js'
|
||||
import followRequestFetcher from 'src/services/follow_request_fetcher/follow_request_fetcher.service'
|
||||
import notificationsFetcher from 'src/services/notifications_fetcher/notifications_fetcher.service.js'
|
||||
import timelineFetcher from 'src/services/timeline_fetcher/timeline_fetcher.service.js'
|
||||
|
||||
const retryTimeout = (multiplier) => 1000 * multiplier
|
||||
|
||||
const api = {
|
||||
state: {
|
||||
retryMultiplier: 1,
|
||||
backendInteractor: backendInteractorService(),
|
||||
fetchers: {},
|
||||
socket: null,
|
||||
mastoUserSocket: null,
|
||||
|
|
@ -25,9 +33,6 @@ const api = {
|
|||
followRequestCount: (state) => state.followRequests.length,
|
||||
},
|
||||
mutations: {
|
||||
setBackendInteractor(state, backendInteractor) {
|
||||
state.backendInteractor = backendInteractor
|
||||
},
|
||||
addFetcher(state, { fetcherName, fetcher }) {
|
||||
state.fetchers[fetcherName] = fetcher
|
||||
},
|
||||
|
|
@ -91,9 +96,17 @@ const api = {
|
|||
try {
|
||||
const { state, commit, dispatch, rootState } = store
|
||||
const timelineData = rootState.statuses.timelines.friends
|
||||
state.mastoUserSocket = state.backendInteractor.startUserSocket({
|
||||
store,
|
||||
|
||||
const serv = useInstanceStore().server.replace('http', 'ws')
|
||||
const credentials = useCredentialsStore().current
|
||||
const url = getMastodonSocketURI({ credentials }, serv)
|
||||
|
||||
state.mastoUserSocket = ProcessedWS({
|
||||
url,
|
||||
id: 'Unified',
|
||||
credentials,
|
||||
})
|
||||
|
||||
state.mastoUserSocket.addEventListener(
|
||||
'pleroma:authenticated',
|
||||
() => {
|
||||
|
|
@ -245,7 +258,7 @@ const api = {
|
|||
return
|
||||
if (store.state.fetchers[timeline]) return
|
||||
|
||||
const fetcher = store.state.backendInteractor.startFetchingTimeline({
|
||||
const fetcher = timelineFetcher.startFetching({
|
||||
timeline,
|
||||
store,
|
||||
userId,
|
||||
|
|
@ -253,7 +266,9 @@ const api = {
|
|||
statusId,
|
||||
bookmarkFolderId,
|
||||
tag,
|
||||
credentials: useCredentialsStore().current,
|
||||
})
|
||||
|
||||
store.commit('addFetcher', { fetcherName: timeline, fetcher })
|
||||
},
|
||||
stopFetchingTimeline(store, timeline) {
|
||||
|
|
@ -261,19 +276,22 @@ const api = {
|
|||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: timeline, fetcher })
|
||||
},
|
||||
|
||||
fetchTimeline(store, { timeline, ...rest }) {
|
||||
store.state.backendInteractor.fetchTimeline({
|
||||
fetchTimeline({
|
||||
store,
|
||||
timeline,
|
||||
...rest,
|
||||
credentials: useCredentialsStore().current,
|
||||
})
|
||||
},
|
||||
|
||||
// Notifications
|
||||
startFetchingNotifications(store) {
|
||||
if (store.state.fetchers.notifications) return
|
||||
const fetcher = store.state.backendInteractor.startFetchingNotifications({
|
||||
const fetcher = notificationsFetcher.startFetching({
|
||||
store,
|
||||
credentials: useCredentialsStore().current,
|
||||
})
|
||||
store.commit('addFetcher', { fetcherName: 'notifications', fetcher })
|
||||
},
|
||||
|
|
@ -282,19 +300,14 @@ const api = {
|
|||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })
|
||||
},
|
||||
fetchNotifications(store, { ...rest }) {
|
||||
store.state.backendInteractor.fetchNotifications({
|
||||
store,
|
||||
...rest,
|
||||
})
|
||||
},
|
||||
|
||||
// Follow requests
|
||||
startFetchingFollowRequests(store) {
|
||||
if (store.state.fetchers.followRequests) return
|
||||
const fetcher = store.state.backendInteractor.startFetchingFollowRequests(
|
||||
{ store },
|
||||
)
|
||||
const fetcher = followRequestFetcher.startFetchingFollowRequests({
|
||||
store,
|
||||
credentials: useCredentialsStore().current,
|
||||
})
|
||||
|
||||
store.commit('addFetcher', { fetcherName: 'followRequests', fetcher })
|
||||
},
|
||||
|
|
@ -303,39 +316,6 @@ const api = {
|
|||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: 'followRequests', fetcher })
|
||||
},
|
||||
removeFollowRequest(store, request) {
|
||||
const requests = store.state.followRequests.filter((it) => it !== request)
|
||||
store.commit('setFollowRequests', requests)
|
||||
},
|
||||
|
||||
// Lists
|
||||
startFetchingLists(store) {
|
||||
if (store.state.fetchers.lists) return
|
||||
const fetcher = store.state.backendInteractor.startFetchingLists({
|
||||
store,
|
||||
})
|
||||
store.commit('addFetcher', { fetcherName: 'lists', fetcher })
|
||||
},
|
||||
stopFetchingLists(store) {
|
||||
const fetcher = store.state.fetchers.lists
|
||||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: 'lists', fetcher })
|
||||
},
|
||||
|
||||
// Bookmark folders
|
||||
startFetchingBookmarkFolders(store) {
|
||||
if (store.state.fetchers.bookmarkFolders) return
|
||||
if (!useInstanceCapabilitiesStore().pleromaBookmarkFoldersAvailable)
|
||||
return
|
||||
const fetcher =
|
||||
store.state.backendInteractor.startFetchingBookmarkFolders({ store })
|
||||
store.commit('addFetcher', { fetcherName: 'bookmarkFolders', fetcher })
|
||||
},
|
||||
stopFetchingBookmarkFolders(store) {
|
||||
const fetcher = store.state.fetchers.bookmarkFolders
|
||||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: 'bookmarkFolders', fetcher })
|
||||
},
|
||||
|
||||
// Pleroma websocket
|
||||
setWsToken(store, token) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue