100 lines
2.0 KiB
JavaScript
100 lines
2.0 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
import router from '../router/index'
|
|
|
|
Vue.use(Vuex)
|
|
export default new Vuex.Store({
|
|
state: {
|
|
loginError: false,
|
|
login: null,
|
|
token: null,
|
|
planets: [],
|
|
people: [],
|
|
movies: [],
|
|
species: [],
|
|
starships: [],
|
|
vehicles: []
|
|
},
|
|
mutations: {
|
|
authUser(state, userData) {
|
|
state.token = "Miracle fake token"
|
|
state.login = userData.login
|
|
},
|
|
clearAuthData(state) {
|
|
state.token = null
|
|
state.login = null
|
|
},
|
|
setLoginError(state) {
|
|
state.loginError = true;
|
|
},
|
|
resetLoginError(state) {
|
|
state.loginError = false;
|
|
},
|
|
setPlanetsData(state, payload) {
|
|
state.planets = payload;
|
|
},
|
|
setPeopleData(state, payload) {
|
|
state.people = payload;
|
|
},
|
|
setFilmsData(state, payload) {
|
|
state.movies = payload;
|
|
},
|
|
setSpeciesData(state, payload) {
|
|
state.species = payload;
|
|
},
|
|
setStarshipsData(state, payload) {
|
|
state.starships = payload;
|
|
},
|
|
setVehiclesData(state, payload) {
|
|
state.vehicles = payload;
|
|
}
|
|
},
|
|
actions: {
|
|
login ({commit}, authData) {
|
|
if(authData.login === "Luke" && authData.pass === "123") {
|
|
commit('authUser', { login: authData.login });
|
|
commit('resetLoginError');
|
|
router.replace('/list');
|
|
}
|
|
else {
|
|
commit('setLoginError');
|
|
}
|
|
},
|
|
logout({commit}) {
|
|
commit('clearAuthData');
|
|
router.replace('/login');
|
|
}
|
|
},
|
|
getters: {
|
|
user (state) {
|
|
return state.user
|
|
},
|
|
isUserAuthenticated (state) {
|
|
return state.token !== null;
|
|
},
|
|
isLoginError(state) {
|
|
return state.loginError !== false;
|
|
},
|
|
Planets(state) {
|
|
return state.planets;
|
|
},
|
|
People(state) {
|
|
return state.people;
|
|
},
|
|
Films(state) {
|
|
return state.movies;
|
|
},
|
|
Species(state) {
|
|
return state.species;
|
|
},
|
|
Starships(state) {
|
|
return state.starships;
|
|
},
|
|
Vehicles(state) {
|
|
return state.vehicles;
|
|
}
|
|
},
|
|
modules: {
|
|
}
|
|
})
|