@modyo/cli
Version:
Modyo Command Line Interface
45 lines (40 loc) • 1.14 kB
JavaScript
/* eslint no-param-reassign: ["error", {"ignorePropertyModificationsFor": ["state"] }] */
import Vuex from 'vuex';
import axios from 'axios';
export default new Vuex.Store({
state: {
cards: [],
isLoadingCards: false,
paramClientId: 1,
},
mutations: {
SET_IS_LOADING_CARDS(state, data) {
state.isLoadingCards = data;
},
SET_CARDS(state, data) {
state.cards = data;
},
},
actions: {
DO_DATA_INITIALIZATION(context) {
return new Promise(((resolve, reject) => {
context.dispatch('GET_CARDS')
.then((cards) => {
resolve(cards);
})
.catch(err => reject(err));
}));
},
GET_CARDS(context) {
context.commit('SET_IS_LOADING_CARDS', true);
context.commit('SET_CARDS', []);
return axios.get(`https://api-bank.herokuapp.com/api/v1/clients/${context.state.paramClientId}/creditCards`)
.then((cards) => {
context.commit('SET_CARDS', cards.data);
context.commit('SET_IS_LOADING_CARDS', false);
return cards.data;
})
.catch(err => err);
},
},
});