@modyo/cli
Version:
Modyo Command Line Interface
123 lines (107 loc) • 3.41 kB
JavaScript
/* eslint no-param-reassign: ["error", {"ignorePropertyModificationsFor": ["state"] }] */
import Vuex from 'vuex';
import axios from 'axios';
export default new Vuex.Store({
state: {
paramClientId: 1,
accounts: [],
interestRate: '',
installment: '',
annualRate: '',
monthlyAmount: '',
totalLoanAmount: '',
loanCosts: '',
percentageLoanCosts: '',
cae: '',
stampTax: '',
notaryFee: '',
monthlyRate: '',
disgraceInsurance: '',
unemploymentInsurance: '',
},
mutations: {
SET_PARAM_CLIENT_ID(state, data) {
state.paramClientId = data;
},
SET_ACCOUNTS(state, data) {
state.accounts = data;
},
SET_INTEREST_RATE(state, data) {
state.interestRate = data;
},
SET_INSTALLMENT(state, data) {
state.installment = data;
},
SET_ANNUAL_RATE(state, data) {
state.annualRate = data;
},
SET_MONTHLY_AMOUNT(state, data) {
state.monthlyAmount = data;
},
SET_TOTAL_LOAN_AMOUNT(state, data) {
state.totalLoanAmount = data;
},
SET_LOAN_COSTS(state, data) {
state.loanCosts = data;
},
SET_PERCENTAGE_LOAN_COSTS(state, data) {
state.percentageLoanCosts = data;
},
SET_CAE(state, data) {
state.cae = data;
},
SET_STAMP_TAX(state, data) {
state.stampTax = data;
},
SET_NOTARY_FEE(state, data) {
state.notaryFee = data;
},
SET_MONTHLY_RATE(state, data) {
state.monthlyRate = data;
},
SET_DISGRACE_INSURANCE(state, data) {
state.disgraceInsurance = data;
},
SET_UNEMPLOYMENT_INSURANCE(state, data) {
state.unemploymentInsurance = data;
},
},
actions: {
DO_DATA_INITIALIZATION(context) {
return new Promise(((resolve, reject) => {
context.dispatch('GET_ACCOUNTS')
.then((accounts) => {
resolve(accounts);
})
.catch(err => reject(err));
}));
},
GET_ACCOUNTS(context) {
return axios.get(`https://api-bank.herokuapp.com/api/v1/clients/${context.state.paramClientId}/accounts`)
.then((accounts) => {
context.commit('SET_ACCOUNTS', accounts.data);
return accounts;
})
.catch(err => err);
},
GET_LOANS(context, payload) {
return axios.post('https://api-bank.herokuapp.com/api/v1/loans/consumer-loan', payload)
.then((loan) => {
context.commit('SET_INTEREST_RATE', loan.data.interestRate);
context.commit('SET_INSTALLMENT', loan.data.installment);
context.commit('SET_ANNUAL_RATE', loan.data.annualRate);
context.commit('SET_MONTHLY_AMOUNT', loan.data.monthlyAmount);
context.commit('SET_TOTAL_LOAN_AMOUNT', loan.data.totalLoanAmount);
context.commit('SET_LOAN_COSTS', loan.data.loanCosts);
context.commit('SET_PERCENTAGE_LOAN_COSTS', loan.data.percentageLoanCosts);
context.commit('SET_CAE', loan.data.cae);
context.commit('SET_STAMP_TAX', loan.data.stampTax);
context.commit('SET_NOTARY_FEE', loan.data.notaryFee);
context.commit('SET_MONTHLY_RATE', loan.data.monthlyRate);
context.commit('SET_DISGRACE_INSURANCE', loan.data.disgraceInsurance);
context.commit('SET_UNEMPLOYMENT_INSURANCE', loan.data.unemploymentInsurance);
return loan;
});
},
},
});