serviceability details

This commit is contained in:
Kroell 2023-04-19 12:29:25 -04:00
parent dae64e0ef4
commit 5ed736cf35
3 changed files with 24 additions and 6 deletions

View file

@ -46,7 +46,11 @@ const endpoints = {
GetPartFromCapabilityAnswer: { GetPartFromCapabilityAnswer: {
url: "/parts/api/v1/parts/part-from-capability-answer", url: "/parts/api/v1/parts/part-from-capability-answer",
method: "POST", method: "POST",
}, },
GetServiceabilityDetails: {
url: "/location/api/v1/location/serviceability-details",
method: "GET",
},
GetVehicle: { GetVehicle: {
url: "/vehicle/api/v1/vehicle/lookup", url: "/vehicle/api/v1/vehicle/lookup",
method: "GET", method: "GET",

View file

@ -2,8 +2,7 @@ import { useMainStore } from '@/store';
import baseMixin from "@/mixins/base-mixin.js"; import baseMixin from "@/mixins/base-mixin.js";
export async function getServiceabilityDetails(serviceZipCode, lineItems) { export async function getServiceabilityDetails(serviceZipCode, lineItems) {
const serviceabilityDetails = await baseMixin.methods.dispatchStoreAction( const serviceabilityDetails = await useMainStore().getServiceabilityDetails(
useMainStore.GET_SERVICEABILITY_DETAILS,
{ {
serviceZipCode: serviceZipCode, serviceZipCode: serviceZipCode,
lineItems: lineItems, lineItems: lineItems,

View file

@ -40,15 +40,17 @@
</template> </template>
<script> <script>
// Import Supporting Files // Import Supporting Files
import { fetchCmsContentForPage, setupModalLinks } from "@/helpers/cms-content-helper"; import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { settleAllPromises } from "@/helpers/layout-helper"; import { settleAllPromises } from "@/helpers/layout-helper";
import { required } from "@/helpers/validation-rules"; import { required } from "@/helpers/validation-rules";
import { errorMessages } from "@/constants/error-messages"; import { errorMessages } from "@/constants/error-messages";
import buttonQuestion from "@/digital-components/button-question/button-question"; import buttonQuestion from "@/digital-components/button-question/button-question";
import { useMainStore } from "@/store"; import { useMainStore } from "@/store";
import { getServiceabilityDetails } from "@/helpers/service-location-helper";
// Import Component // Import Component
import baseFormMixin from "@/mixins/base-form-mixin"; import baseFormMixin from "@/mixins/base-form-mixin";
import baseMixin from "@/mixins/base-mixin";
import { Form, defineRule } from "vee-validate"; import { Form, defineRule } from "vee-validate";
import siteFooter from "@/iss-components/site-footer/site-footer.vue"; import siteFooter from "@/iss-components/site-footer/site-footer.vue";
import siteHeader from "@/iss-components/site-header/site-header.vue"; import siteHeader from "@/iss-components/site-header/site-header.vue";
@ -59,17 +61,30 @@ import serviceZipModalQuestion from '@/layouts/service-location/service-zip-moda
defineRule("selection-required", required(errorMessages.OPTION_REQUIRED)); defineRule("selection-required", required(errorMessages.OPTION_REQUIRED));
export default { export default {
name: "service-location", name: "service-location",
mixins: [baseFormMixin], mixins: [baseFormMixin, baseMixin],
async beforeRouteEnter(to, from, next) { async beforeRouteEnter(to, from, next) {
// Call APIs // Call APIs
const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); const cmsContentPromise = fetchCmsContentForPage(to.query.issPage);
const serviceZipCode = useMainStore().order.serviceLocation.zipCode;
const getZipCodeData = baseMixin.methods.getZipCodeData(serviceZipCode);
const serviceabilityDetailsPromise = getServiceabilityDetails(serviceZipCode);
// Settle promises and get results // Settle promises and get results
const promiseResultMap = [ const promiseResultMap = [
{ {
resultKey: "cmsContent", resultKey: "cmsContent",
promise: cmsContentPromise, promise: cmsContentPromise,
}, },
{
resultKey: "serviceabilityDetails",
promise: serviceabilityDetailsPromise,
},
{
resultKey: "zipCodeData",
promise: getZipCodeData,
},
]; ];
const resultMap = await settleAllPromises(promiseResultMap); const resultMap = await settleAllPromises(promiseResultMap);