import { REST } from 'vuejs/api/rest-axios' import { JSONAPI } from 'vuejs/api/json-axios' import qs from 'querystring' export default { namespaced: true, // initial state state : { uid:null, // username: '', mail:'', token: null, logout_token: null, isloggedin: false }, // getters getters : {}, // mutations mutations : { setToken (state, data) { state.uid = data.current_user.uid // state.username = data.username state.mail = data.current_user.mail state.token = data.csrf_token state.isloggedin = true state.logout_token = data.logout_token }, setUid (state, uid) { state.uid = uid state.isloggedin = true }, setUser (state, data) { state.mail = data.mail[0].value state.uuid = data.uuid[0].value }, setLoggedOut (state) { state.uid= null state.mail = '' state.token = null state.isloggedin = false state.logout_token = null } }, // actions actions : { getToken ({ dispatch, commit, state }, credentials) { REST.post('/user/login?_format=json', credentials) .then(({ data }) => { console.log('user getToken data', data) commit('setToken', data) dispatch('getUser') }) .catch(( error ) => { console.warn('Issue with login', error) Promise.reject(error) }) }, getUser ({ commit, state }) { let params = { token: state.token } REST.get(`/user/${state.uid}?_format=json`, params) .then(({ data }) => { console.log('user REST getUser data', data) console.log('roles', data['roles']); commit('setUser', data) JSONAPI.get(`/user/user/${state.uuid}?include=roles`) .then(({ data }) => { console.log('user JSONAPI getUser data', data) }) .catch(( error ) => { console.warn('Issue with getUser', error) Promise.reject(error) }) }) .catch(( error ) => { console.warn('Issue with getUser', error) Promise.reject(error) }) }, userLogout ({ commit, state }) { let credentials = qs.stringify({ token: state.token }) REST.post('/user/logout', credentials) .then((resp) => { console.log('resp', resp) commit('setLoggedOut') }) .catch(( error ) => { console.warn('Issue with logout', error) Promise.reject(error) }) } } }