diff --git a/src/api/HttpClient.js b/src/api/HttpClient.js index 5fc0b52..e6a177c 100644 --- a/src/api/HttpClient.js +++ b/src/api/HttpClient.js @@ -1,7 +1,6 @@ import axios from 'axios' export default axios.create({ - baseURL: 'https://localhost:8080/', - timeout: 1000, - headers: { 'X-Custom-Header': 'foobar' } + baseURL: 'https://88c09a70-ab85-412a-9bd3-407afe8986a1.mock.pstmn.io/', + timeout: 4000 }) diff --git a/src/main.js b/src/main.js index 080705d..e6d25fe 100644 --- a/src/main.js +++ b/src/main.js @@ -5,12 +5,13 @@ import { createI18n } from './i18n' import store from './store' import { library } from '@fortawesome/fontawesome-svg-core' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' -import { faUserSecret } from '@fortawesome/free-solid-svg-icons' +import { faUserSecret, faPenToSquare } from '@fortawesome/free-solid-svg-icons' import './assets/main.css' /* add icons to the library */ library.add(faUserSecret) +library.add(faPenToSquare) const i18n = createI18n() diff --git a/src/router/index.js b/src/router/index.js index 637510d..8adbf91 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -77,6 +77,14 @@ const router = createRouter({ requiresAuth: false } }, + { + path: '/error', + name: 'error', + component: () => import('../views/ErrorView.vue'), + meta: { + requiresAuth: false + } + }, { path: '/:pathMatch(.*)*', name: 'notfound', diff --git a/src/service/getContracts.js b/src/service/getContracts.js new file mode 100644 index 0000000..d79c3cf --- /dev/null +++ b/src/service/getContracts.js @@ -0,0 +1,12 @@ +import HttpClient from '../api/HttpClient' +import router from '../router' + +export async function getContracts() { + return HttpClient.get('contracts') + .then(resp => { + return resp.data.contracts + }) + .catch(error => { + router.push('/error?message=' + error.message + '&code=' + error.code) + }) +} diff --git a/src/store/contracts.module.js b/src/store/contracts.module.js new file mode 100644 index 0000000..72f2117 --- /dev/null +++ b/src/store/contracts.module.js @@ -0,0 +1,21 @@ +import { getContracts } from '../service/getContracts' +import HttpClient from '../api/HttpClient' +import router from '../router' + +export default { + state: () => ({ + contracts: [] + }), + mutations: { + initContracts(state, data) { + state.contracts = data + } + }, + actions: { + async fetchContracts({ commit }) { + const contracts = await getContracts() + commit('initContracts', contracts) + } + }, + getters: {} +} diff --git a/src/store/index.js b/src/store/index.js index 2e1e805..0453cfc 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,5 +1,5 @@ import { createStore } from 'vuex' -import moduleA from './moduleA.module' +import contracts from './contracts.module' import moduleB from './moduleB.module' import keycloak from './keycloak.module' import createPersistedState from 'vuex-persistedstate' @@ -7,7 +7,7 @@ import createPersistedState from 'vuex-persistedstate' export default createStore({ modules: { keycloak: keycloak, - a: moduleA, + contracts: contracts, b: moduleB }, plugins: [createPersistedState()] diff --git a/src/store/moduleA.module.js b/src/store/moduleA.module.js deleted file mode 100644 index 6abb9ee..0000000 --- a/src/store/moduleA.module.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - state: () => ({}), - mutations: {}, - actions: {}, - getters: {} -} diff --git a/src/views/ContractsView.vue b/src/views/ContractsView.vue index 3d71846..9dcf249 100644 --- a/src/views/ContractsView.vue +++ b/src/views/ContractsView.vue @@ -1,15 +1,97 @@ - - + diff --git a/src/views/ErrorView.vue b/src/views/ErrorView.vue new file mode 100644 index 0000000..48f3132 --- /dev/null +++ b/src/views/ErrorView.vue @@ -0,0 +1,48 @@ + + + \ No newline at end of file