UNPKG

cheetah-framework

Version:

Cheetah Framework JS used in all our applications

75 lines (64 loc) 1.83 kB
/* global axios Echo echoActive */ import User from '@cheetah/models/User' import { Router } from '@cheetah/utils/Router' export default { namespaced: true, state: { user: window.Cheetah.user ? new User(window.Cheetah.user) : null }, getters: { userId: state => { return state.user?.id } }, actions: { fetchUser ({ commit }) { return User.check().then(response => { commit('SET_USER', response.data.user) axios.defaults.headers.common['X-CSRF-TOKEN'] = response.data.token return response }).catch(error => { commit('SET_USER', null) throw error }) }, login ({ commit, state }, formData) { return User.login(formData).then(({ data }) => { commit('SET_USER', data.user) axios.defaults.headers.common['X-CSRF-TOKEN'] = data.token if (echoActive) { Echo.connector.pusher.config.auth.headers['X-CSRF-TOKEN'] = data.token } Router.redirectAfterLogin() }).catch(error => { commit('SET_USER', null) throw error }) }, register ({ commit }, formData) { return User.register(formData).then(({ data }) => { commit('SET_USER', data.user) }).catch(error => { commit('SET_USER', null) throw error }) }, logout ({ commit }) { return User.logout().then(({ data }) => { commit('SET_USER', null) axios.defaults.headers.common['X-CSRF-TOKEN'] = data.token if (echoActive) { Echo.connector.pusher.config.auth.headers['X-CSRF-TOKEN'] = data.token } Router.redirectAfterLogout() }).catch(error => { throw error }) } }, mutations: { SET_USER (state, user) { state.user = user ? new User(user) : null } } }