File: D:/HostingSpaces/SBogers10/shop.komma.nl/resources/js/store/modules/user.js
import { requestThrottleGetters, requestThrottleMutations, requestThrottleState } from "../composables/requestThrottle";
import SiteUsersService from "../../services/siteUsersService";
import ErrorHandler from "../../errorHandler";
import Vue from 'vue';
const siteUsersService = new SiteUsersService();
export const siteUserState = {
...requestThrottleState,
me: null,
}
export const siteUserMutations = {
...requestThrottleMutations,
storeMe(state, me) {
Vue.set(state, 'me', me);
},
};
export const siteUserGetters = {
...requestThrottleGetters
};
export const siteUserActions = {
loadMe({ commit, getters }) {
if(getters.isRequesting('loadMe'))
return Promise.reject('Already loading "me". Try again later.');
commit('requesting', 'loadMe')
let promise = siteUsersService.me().then((response) => {
if( response &&
response.hasOwnProperty('data') &&
response.data.hasOwnProperty('data')
) {
commit('storeMe', response.data.data);
return response.data.data;
}
return null
})
promise.catch(ErrorHandler.logFor('loadMe')).finally(() => {
commit('clearRequest', 'loadMe')
});
return promise;
},
update({ commit, getters }, user) {
commit('requesting', 'updateUser')
let promise = siteUsersService.update(user).then((response) => {
return null
})
promise.catch(ErrorHandler.logFor('updateUser')).finally(() => {
commit('clearRequest', 'updateUser')
});
return promise;
},
userAsCheckoutUser({commit, dispatch}) {
commit('requesting', 'userAsCheckoutUser')
let promise = siteUsersService.userAsCheckoutUser();
promise.catch(ErrorHandler.logFor('userAsCheckoutUser')).finally(() => {
commit('clearRequest', 'userAsCheckoutUser')
})
return promise;
}
};