File: D:/HostingSpaces/SBogers10/shop.komma.nl/resources/js/store/modules/discounts.js
import Vuex from "vuex";
import Vue from "vue";
import {DiscountService} from "../../services/discountService";
import {requestThrottleState, requestThrottleGetters, requestThrottleMutations} from '../composables/requestThrottle'
import ErrorHandler from "../../errorHandler";
Vue.use(Vuex);
let discountService = new DiscountService();
const discountState = {
...requestThrottleState,
}
const discountMutations = {
...requestThrottleMutations,
storeDiscountableProperties(state, properties) {
Vue.set(state, 'discountableProperties', properties);
},
}
const discountActions = {
loadDiscountablePropsFor({commit, state}, forCartOrItem) {
commit('requesting', 'loadDiscountablePropsForShoppingCart')
let promise = discountService.discountablePropertiesFor(forCartOrItem).then(function (response) {
commit('storeDiscountableProperties', response.data)
return response.data;
});
promise.catch(ErrorHandler.logFor('loadDiscountablePropsForShoppingCart')).finally(() => {
commit('clearRequest', 'loadDiscountablePropsForShoppingCart')
})
return promise;
},
}
const discountGetters = {
...requestThrottleGetters,
}
export default {
namespaced: true,
state: discountState,
actions: discountActions,
getters: discountGetters,
mutations: discountMutations
}