From aa992395d0289f4570c575a89026fe7edfd1399c Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Tue, 23 Apr 2024 05:58:55 -0400 Subject: [PATCH] bailout when getPartsOrQuestions errors --- src/constants/bailoutCode.js | 3 ++- src/constants/bailoutMessage.js | 4 ++++ src/layouts/vin-lookup/vin-lookup.vue | 22 ++++++++++++++-------- src/mixins/vehicle-questions-mixin.js | 3 ++- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/constants/bailoutCode.js b/src/constants/bailoutCode.js index 8f8b0680..6e562261 100644 --- a/src/constants/bailoutCode.js +++ b/src/constants/bailoutCode.js @@ -8,7 +8,8 @@ const bailoutCode = Object.freeze({ PricingResponseError: 6, TPANotEnabled: 7, RequestCallback: 8, - HeavyTruckVehicle: 9 + HeavyTruckVehicle: 9, + NoPartsAvailable: 10 }); export default bailoutCode; diff --git a/src/constants/bailoutMessage.js b/src/constants/bailoutMessage.js index 8d046927..d18d4a3a 100644 --- a/src/constants/bailoutMessage.js +++ b/src/constants/bailoutMessage.js @@ -52,6 +52,10 @@ const bailoutMessage = Object.freeze({ HeavyTruckVehicle: (carId) => ({ code: bailoutCode.HeavyTruckVehicle, message: `User selected a heavy truck vehicle. Car ID: ${carId} ` + }), + NoPartsAvailable: (error) => ({ + code: bailoutCode.NoPartsAvailable, + message: `An error occurred in getPartsOrQuestions. Error: ${getItemData(error)}` }) }); diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 6984341d..78c594f8 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -274,21 +274,27 @@ export default { return null; } + let hasBailedOut = false; const partsOrQuestionsResponse = await this.getPartsOrQuestions(); if (partsOrQuestionsResponse.error) { - // To Do: Need requirement on what to do here + this.mainStore.setBailout( + bailoutMessage.NoPartsAvailable(partsOrQuestionsResponse.error.data)); window.console.error('Error on retrieving PartsOrQuestions'); this.$refs.siteFooter.removeLoader(); - return null; + hasBailedOut = true; + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT, + this.$route + ); } // Comes from vehicleQuestionsMixin.navigateForward() - await this.navigateForward( - partsOrQuestionsResponse.data.partsOrQuestions, - this - ); - - return null; + if (!hasBailedOut) { + await this.navigateForward( + partsOrQuestionsResponse.data.partsOrQuestions, + this + ); + } }, async lookupVehicleByVin(vin) { try { diff --git a/src/mixins/vehicle-questions-mixin.js b/src/mixins/vehicle-questions-mixin.js index 4cad0395..88f6b2b6 100644 --- a/src/mixins/vehicle-questions-mixin.js +++ b/src/mixins/vehicle-questions-mixin.js @@ -347,7 +347,8 @@ export default { } catch (responseError) { return { error: { - status: responseError.status + status: responseError.status, + data: responseError.data } }; }