akkoma-fe/src/modules/users.js

49 lines
1.4 KiB
JavaScript
Raw Normal View History

2016-10-27 16:03:14 +00:00
import apiService from '../services/api/api.service.js'
2016-10-28 12:26:51 +00:00
import timelineFetcher from '../services/timeline_fetcher/timeline_fetcher.service.js'
import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'
2016-10-27 16:03:14 +00:00
const users = {
state: {
currentUser: false,
loggingIn: false
},
mutations: {
setCurrentUser (state, user) {
state.currentUser = user
},
beginLogin (state) {
state.loggingIn = true
},
endLogin (state) {
state.loggingIn = false
}
},
actions: {
2016-10-28 12:26:51 +00:00
loginUser (store, userCredentials) {
const commit = store.commit
2016-10-27 16:03:14 +00:00
commit('beginLogin')
2016-10-30 13:25:18 +00:00
return apiService.verifyCredentials(userCredentials)
2016-10-27 16:03:14 +00:00
.then((response) => {
if (response.ok) {
response.json()
2016-10-30 15:12:35 +00:00
.then((user) => {
user.credentials = userCredentials
commit('setCurrentUser', user)
})
// Start getting fresh tweets.
2016-10-28 12:26:51 +00:00
.then(() => timelineFetcher.startFetching({store, credentials: userCredentials}))
// Set our new backend interactor
.then(() => commit('setBackendInteractor', backendInteractorService(userCredentials)))
2016-10-27 16:03:14 +00:00
}
commit('endLogin')
})
.catch((error) => {
console.log(error)
commit('endLogin')
})
}
}
}
export default users