@modyo/cli
Version:
Modyo Command Line Interface
51 lines (48 loc) • 1.41 kB
JavaScript
/* eslint no-param-reassign: ["error", {"ignorePropertyModificationsFor": ["state"] }] */
import Vuex from 'vuex';
import axios from 'axios';
export default new Vuex.Store({
state: {
isLoadingLoans: false,
paramClientId: 1,
loans: [],
},
mutations: {
SET_LOADING_LOANS(state, data) {
state.isLoadingLoans = data;
},
SET_LOANS(state, data) {
state.loans = data;
},
SET_PARAM_CLIENT_ID(state, data) {
state.paramClientId = data;
},
},
actions: {
DO_DATA_INITIALIZATION(context) {
return new Promise(((resolve, reject) => {
context.dispatch('GET_LOANS')
.then(() => {
resolve(context.state);
})
.catch(err => reject(err));
}));
},
GET_LOANS(context) {
context.commit('SET_LOADING_LOANS', true);
context.commit('SET_LOANS', []);
return axios.get(`https://api-bank.herokuapp.com/api/v1/clients/${context.state.paramClientId}/loans`)
.then((loans) => {
context.commit('SET_LOANS', loans.data);
context.commit('SET_LOADING_LOANS', false);
return loans.data;
})
.catch(err => err);
},
GET_LOAN_DATA(context, loanData) {
return axios.get(`https://api-bank.herokuapp.com/api/v1/loans/${loanData.id}/insurances`)
.then(insurances => insurances)
.catch(err => err);
},
},
});