Add friend list fetching.

This commit is contained in:
Roger Braun 2016-11-30 21:27:25 +01:00
parent aa4a9fb24f
commit dcb9a5fa17
3 changed files with 24 additions and 5 deletions

View File

@ -48,18 +48,25 @@ const users = {
loginUser (store, userCredentials) { loginUser (store, userCredentials) {
const commit = store.commit const commit = store.commit
commit('beginLogin') commit('beginLogin')
return store.rootState.api.backendInteractor.verifyCredentials(userCredentials) store.rootState.api.backendInteractor.verifyCredentials(userCredentials)
.then((response) => { .then((response) => {
if (response.ok) { if (response.ok) {
response.json() response.json()
.then((user) => { .then((user) => {
user.credentials = userCredentials user.credentials = userCredentials
commit('setCurrentUser', user) commit('setCurrentUser', user)
commit('addNewUsers', [user])
// Start getting fresh tweets.
timelineFetcher.startFetching({store, credentials: userCredentials})
// Set our new backend interactor
commit('setBackendInteractor', backendInteractorService(userCredentials))
// Fetch our friends
store.rootState.api.backendInteractor.fetchFriends()
.then((friends) => commit('addNewUsers', friends))
}) })
// Start getting fresh tweets.
.then(() => timelineFetcher.startFetching({store, credentials: userCredentials}))
// Set our new backend interactor
.then(() => commit('setBackendInteractor', backendInteractorService(userCredentials)))
} }
commit('endLogin') commit('endLogin')
}) })

View File

@ -11,6 +11,7 @@ const STATUS_URL = '/api/statuses/show'
const MEDIA_UPLOAD_URL = '/api/statusnet/media/upload' const MEDIA_UPLOAD_URL = '/api/statusnet/media/upload'
const CONVERSATION_URL = '/api/statusnet/conversation' const CONVERSATION_URL = '/api/statusnet/conversation'
const MENTIONS_URL = '/api/statuses/mentions.json' const MENTIONS_URL = '/api/statuses/mentions.json'
const FRIENDS_URL = '/api/statuses/friends.json'
const oldfetch = window.fetch const oldfetch = window.fetch
@ -28,6 +29,11 @@ const authHeaders = (user) => {
} }
} }
const fetchFriends = ({credentials}) => {
return fetch(FRIENDS_URL, { headers: authHeaders(credentials) })
.then((data) => data.json())
}
const fetchMentions = ({username, sinceId = 0, credentials}) => { const fetchMentions = ({username, sinceId = 0, credentials}) => {
let url = `${MENTIONS_URL}?since_id=${sinceId}&screen_name=${username}` let url = `${MENTIONS_URL}?since_id=${sinceId}&screen_name=${username}`
return fetch(url, { headers: authHeaders(credentials) }) return fetch(url, { headers: authHeaders(credentials) })
@ -128,6 +134,7 @@ const apiService = {
fetchConversation, fetchConversation,
fetchStatus, fetchStatus,
fetchMentions, fetchMentions,
fetchFriends,
favorite, favorite,
unfavorite, unfavorite,
retweet, retweet,

View File

@ -13,10 +13,15 @@ const backendInteractorService = (credentials) => {
return apiService.fetchMentions({sinceId, username, credentials}) return apiService.fetchMentions({sinceId, username, credentials})
} }
const fetchFriends = () => {
return apiService.fetchFriends({credentials})
}
const backendInteractorServiceInstance = { const backendInteractorServiceInstance = {
fetchStatus, fetchStatus,
fetchConversation, fetchConversation,
fetchMentions, fetchMentions,
fetchFriends,
verifyCredentials: apiService.verifyCredentials verifyCredentials: apiService.verifyCredentials
} }