updating API call method

This commit is contained in:
Max 2021-10-26 13:31:55 -04:00
parent e30a4e94cd
commit 74a0b66071
12 changed files with 88 additions and 7 deletions

11
package-lock.json generated
View file

@ -11,6 +11,7 @@
"axios": "^0.21.4",
"bootstrap": "^5.1.1",
"core-js": "^3.6.5",
"http-status-codes": "^2.1.4",
"vue": "^3.0.0",
"vue-router": "^4.0.11",
"vuex": "^4.0.2",
@ -7912,6 +7913,11 @@
"npm": ">=1.3.7"
}
},
"node_modules/http-status-codes": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.1.4.tgz",
"integrity": "sha512-MZVIsLKGVOVE1KEnldppe6Ij+vmemMuApDfjhVSLzyYP+td0bREEYyAoIw9yFePoBXManCuBqmiNP5FqJS5Xkg=="
},
"node_modules/https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@ -21961,6 +21967,11 @@
"sshpk": "^1.7.0"
}
},
"http-status-codes": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.1.4.tgz",
"integrity": "sha512-MZVIsLKGVOVE1KEnldppe6Ij+vmemMuApDfjhVSLzyYP+td0bREEYyAoIw9yFePoBXManCuBqmiNP5FqJS5Xkg=="
},
"https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",

View file

@ -11,6 +11,7 @@
"axios": "^0.21.4",
"bootstrap": "^5.1.1",
"core-js": "^3.6.5",
"http-status-codes": "^2.1.4",
"vue": "^3.0.0",
"vue-router": "^4.0.11",
"vuex": "^4.0.2",

60
src/global-methods.js Normal file
View file

@ -0,0 +1,60 @@
import axios from 'axios';
import { StatusCodes } from 'http-status-codes';
export default {
callHttpClient({
method,
endpoint,
payload,
responseType = {},
ignoreErrors = false
}) {
return new Promise((resolve, reject) => {
// Grab our accessToken from Okta.
const accessToken = this.getBearerTokenForStorage();
// Merge payload with analytics data
const payloadAndAnalyticsData = Object.assign({}, payload, {
AppName: "Agency Advantage Dashboard"
});
axios({
method: method,
url: endpoint,
//data: payloadAndAnalyticsData,
crossdomain: true,
responseType: responseType
// headers: {
// Authorization: `Bearer ${accessToken}`
// }
})
.then(function(response) {
if (response.data.isSuccess || (response.status == 200)) {
resolve(response);
} else {
reject(response);
}
}, error => {
let statusCode = error.response.status;
let message = 'Sorry, something happened on our end. Please try again';
if (!ignoreErrors) {
switch (statusCode) {
case StatusCodes.UNAUTHORIZED:
this.createPromiseRejection("Unauthorized, routing back to login page.", error.response, reject, true, false);
break;
case StatusCodes.BAD_REQUEST:
this.createPromiseRejection(error.response.data, error.response, reject, true, false);
break;
}
}
});
})
},
getBearerTokenForStorage() {
try {
return JSON.parse(localStorage.getItem('okta-token-storage')).accessToken.accessToken;
} catch (error) {
return '';
}
}
}

View file

@ -1,10 +1,10 @@
import { createWebHistory, createRouter } from "vue-router";
import Home from "@/layouts/ContentSite/Home.vue";
import SelectYear from "@/layouts/CarFunnel/SelectCar/SelectYear.vue";
import SelectMake from "@/layouts/CarFunnel/SelectCar/SelectMake.vue";
import SelectModel from "@/layouts/CarFunnel/SelectCar/SelectModel.vue";
import SelectStyle from "@/layouts/CarFunnel/SelectCar/SelectStyle.vue";
import SelectDamage from "@/layouts/CarFunnel/Damage/SelectDamage.vue";
import SelectYear from "@/layouts/FMG/Vehicle/SelectYear.vue";
import SelectMake from "@/layouts/FMG/Vehicle/SelectMake.vue";
import SelectModel from "@/layouts/FMG/Vehicle/SelectModel.vue";
import SelectStyle from "@/layouts/FMG/Vehicle/SelectStyle.vue";
import SelectDamage from "@/layouts/FMG/Damage/SelectDamage.vue";
const routes = [
{

View file

@ -1,6 +1,7 @@
import { createStore } from 'vuex';
import createPersistedState from 'vuex-persistedstate';
import axios from 'axios';
import globalMethods from '../global-methods'
import router from '@/router';
export default createStore({
@ -22,7 +23,7 @@ export default createStore({
mutations: {
updateYear(state, data){
state.year = data.year;
state.makes = data.makes.data.Result;
state.makes = data.makes;
state.slideTransition = 'slide'
},
updateMake(state, data){
@ -49,7 +50,15 @@ export default createStore({
},
actions: {
async selectYear(context, year){
const makes = await axios.get(`https://mockey.qa.sagaws.net/service/makes/year=${year}`);
let makes = [];
await globalMethods.callHttpClient({
method: 'GET',
endpoint: `https://mockey.qa.sagaws.net/service/makes/year=${year}`,
payload: {},
})
.then(function (response) {
makes = response.data.Result;
});
context.commit('updateYear', {year, makes});
router.push(`/select-make?year=${year}`);
},