From 009f219415df5e9075ed654ed93ac874ae497417 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Fri, 20 Dec 2024 13:58:31 -0500 Subject: [PATCH 1/2] More robust handling of vehicle YMMS lookup errors --- src/constants/bailoutMessage.js | 26 +++++++++-- .../vehicle-selection/vehicle-selection.vue | 44 +++++++++++++++++-- 2 files changed, 62 insertions(+), 8 deletions(-) diff --git a/src/constants/bailoutMessage.js b/src/constants/bailoutMessage.js index e26ec247..47ce0657 100644 --- a/src/constants/bailoutMessage.js +++ b/src/constants/bailoutMessage.js @@ -65,10 +65,28 @@ const bailoutMessage = Object.freeze({ code: bailoutCode.SafeliteNotTheProvider, message: 'User selected to continue a referral where a TPA shop was previously selected.' }), - vehicleYMMSLookupError: (year, make, model, style, error) => ({ - code: bailoutCode.VehicleYMMSLookupError, - message: `An error occurred looking up Year: ${year}, Make: ${make}, Model: ${model}, Style: ${style}. Error: ${getItemData(error)}` - }), + vehicleYMMSLookupError: (year, make, model, style, error) => { + let message; + if(!year) { + message = `An error occured looking up vehicle years. Error: ${getItemData(error)}`; + } + else if (!make) { + message = `An error occured looking up vehicle makes for Year: ${year}. Error: ${getItemData(error)}`; + } + else if (!model) { + message = `An error occured looking up vehicle models for Year: ${year}, Make: ${make}. Error: ${getItemData(error)}`; + } + else if (!style) { + message = `An error occured looking up vehicle styles for Year: ${year}, Make: ${make}, Model: ${model}. Error: ${getItemData(error)}`; + } + else { + message = `An error occurred looking up a vehicle with Year: ${year}, Make: ${make}, Model: ${model}, Style: ${style}. Error: ${getItemData(error)}` + } + return { + code: bailoutCode.VehicleYMMSLookupError, + message: message + } + }, }); export default bailoutMessage; diff --git a/src/layouts/vehicle-selection/vehicle-selection.vue b/src/layouts/vehicle-selection/vehicle-selection.vue index 4f4f5ffa..59b96b38 100644 --- a/src/layouts/vehicle-selection/vehicle-selection.vue +++ b/src/layouts/vehicle-selection/vehicle-selection.vue @@ -218,16 +218,52 @@ export default { }); }, async updateYearValues() { - return useMainStore().getVehicleYears(); + return this.mainStore.getVehicleYears().then((response) => { + return response; + }, + (error) => { + this.mainStore.setBailout(bailoutMessage.vehicleYMMSLookupError(null, null, null, null, error)); + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT, + this.$route + ); + }); }, async updateMakeValues() { - return this.mainStore.getVehicleMakes(); + return this.mainStore.getVehicleMakes().then((response) => { + return response; + }, + (error) => { + this.mainStore.setBailout(bailoutMessage.vehicleYMMSLookupError(this.mainStore.vehicle.year, null, null, null, error)); + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT, + this.$route + ); + }); }, async updateModelValues() { - return this.mainStore.getVehicleModels(); + return this.mainStore.getVehicleModels().then((response) => { + return response; + }, + (error) => { + this.mainStore.setBailout(bailoutMessage.vehicleYMMSLookupError(this.mainStore.vehicle.year, this.mainStore.vehicle.make, null, null, error)); + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT, + this.$route + ); + }); }, async updateStyleValues() { - return this.mainStore.getVehicleStyles(); + return this.mainStore.getVehicleStyles().then((response) => { + return response; + }, + (error) => { + this.mainStore.setBailout(bailoutMessage.vehicleYMMSLookupError(this.mainStore.vehicle.year, this.mainStore.vehicle.make, this.mainStore.vehicle.model, null, error)); + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD_WITH_BAILOUT, + this.$route + ); + }); } } }; From e4a8413e4c368cd956c27e6951ce73275d40a206 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Mon, 23 Dec 2024 13:46:44 -0500 Subject: [PATCH 2/2] Refactored new bailout to reduce redundancy --- src/constants/bailoutMessage.js | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/constants/bailoutMessage.js b/src/constants/bailoutMessage.js index 47ce0657..4215d868 100644 --- a/src/constants/bailoutMessage.js +++ b/src/constants/bailoutMessage.js @@ -66,26 +66,21 @@ const bailoutMessage = Object.freeze({ message: 'User selected to continue a referral where a TPA shop was previously selected.' }), vehicleYMMSLookupError: (year, make, model, style, error) => { - let message; - if(!year) { - message = `An error occured looking up vehicle years. Error: ${getItemData(error)}`; - } - else if (!make) { - message = `An error occured looking up vehicle makes for Year: ${year}. Error: ${getItemData(error)}`; - } - else if (!model) { - message = `An error occured looking up vehicle models for Year: ${year}, Make: ${make}. Error: ${getItemData(error)}`; - } - else if (!style) { - message = `An error occured looking up vehicle styles for Year: ${year}, Make: ${make}, Model: ${model}. Error: ${getItemData(error)}`; - } - else { - message = `An error occurred looking up a vehicle with Year: ${year}, Make: ${make}, Model: ${model}, Style: ${style}. Error: ${getItemData(error)}` - } + const baseMessage = "An error occurred looking up vehicle"; + const errorMessage = `Error: ${getItemData(error)}`; + + const getMessage = (year, make, model, style) => { + if (!year) return `${baseMessage} years. ${errorMessage}`; + if (!make) return `${baseMessage} makes for Year: ${year}. ${errorMessage}`; + if (!model) return `${baseMessage} models for Year: ${year}, Make: ${make}. ${errorMessage}`; + if (!style) return `${baseMessage} styles for Year: ${year}, Make: ${make}, Model: ${model}. ${errorMessage}`; + return `${baseMessage} with Year: ${year}, Make: ${make}, Model: ${model}, Style: ${style}. ${errorMessage}`; + }; + return { code: bailoutCode.VehicleYMMSLookupError, - message: message - } + message: getMessage(year, make, model, style) + }; }, });