diff options
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/api.js | 23 | ||||
| -rw-r--r-- | src/modules/users.js | 7 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/modules/api.js b/src/modules/api.js index 4000dc60..a32adfde 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -2,11 +2,32 @@ import backendInteractorService from '../services/backend_interactor_service/bac const api = { state: { - backendInteractor: backendInteractorService() + backendInteractor: backendInteractorService(), + fetchers: {} }, mutations: { setBackendInteractor (state, backendInteractor) { state.backendInteractor = backendInteractor + }, + addFetcher (state, {timeline, fetcher}) { + state.fetchers[timeline] = fetcher + }, + removeFetcher (state, {timeline}) { + delete state.fetchers[timeline] + } + }, + actions: { + startFetching (store, timeline) { + // Don't start fetching if we already are. + if (!store.state.fetchers[timeline]) { + const fetcher = store.state.backendInteractor.startFetching({timeline, store}) + store.commit('addFetcher', {timeline, fetcher}) + } + }, + stopFetching (store, timeline) { + const fetcher = store.state.fetchers[timeline] + window.clearInterval(fetcher) + store.commit('removeFetcher', {timeline}) } } } diff --git a/src/modules/users.js b/src/modules/users.js index 546015ba..dd65afe1 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -1,4 +1,3 @@ -import timelineFetcher from '../services/timeline_fetcher/timeline_fetcher.service.js' import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js' import { compact, map, each, find, merge } from 'lodash' import { set } from 'vue' @@ -74,12 +73,12 @@ const users = { commit('setCurrentUser', user) commit('addNewUsers', [user]) - // Start getting fresh tweets. - timelineFetcher.startFetching({store, credentials: userCredentials}) - // Set our new backend interactor commit('setBackendInteractor', backendInteractorService(userCredentials)) + // Start getting fresh tweets. + store.dispatch('startFetching', 'friends') + // Fetch our friends store.rootState.api.backendInteractor.fetchFriends() .then((friends) => commit('addNewUsers', friends)) |
