From eb6d6a4140a5b4e1fc471fcdcf8965bfbb21b6b1 Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Wed, 2 Aug 2023 13:35:53 +0530 Subject: [PATCH] zip code GA event optimized code optimized --- src/helpers/querystring-helper.js | 10 ++++++++++ src/layouts/vehicle-damage/vehicle-damage.spec.js | 14 ++------------ src/layouts/vehicle-damage/vehicle-damage.vue | 13 +------------ src/store/index.js | 8 +++++--- 4 files changed, 18 insertions(+), 27 deletions(-) create mode 100644 src/helpers/querystring-helper.js diff --git a/src/helpers/querystring-helper.js b/src/helpers/querystring-helper.js new file mode 100644 index 000000000..38583b1ae --- /dev/null +++ b/src/helpers/querystring-helper.js @@ -0,0 +1,10 @@ +export function getQuerystringParameter(key) { + const queryString = window.location.search; + const urlParams = new URLSearchParams(queryString); + const lowerCaseParams = new URLSearchParams(); + for (const [name, value] of urlParams) { + lowerCaseParams.append(name.toLowerCase(), value); + } + + return lowerCaseParams.get(key) ? lowerCaseParams.get(key) : null; +} diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index 30e144310..b26b5e31c 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -52,7 +52,6 @@ jest.mock("@/store", () => ({ damage: { glassToReplace: [], }, - order: { serviceLocation: { zipCode: "11111" } }, }, })); @@ -134,7 +133,6 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: false } }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }, @@ -177,7 +175,7 @@ describe("vehicle-damage.vue", () => { expect(wrapper.vm.selectedGlassToReplace()).toEqual(expectedGlassToReplace); expect(baseMixin.methods.dispatchStoreAction).toBeCalledWith( storeActions.GET_DAMAGE_OPTIONS, - { carId: "C00000000", zipCode: "11111" } + { carId: "C00000000" } ); }); @@ -243,7 +241,6 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: false } }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }, @@ -273,7 +270,7 @@ describe("vehicle-damage.vue", () => { expect(wrapper.vm.selectedGlassToReplace()).toEqual(expectedGlassToReplace); expect(baseMixin.methods.dispatchStoreAction).toBeCalledWith( storeActions.GET_DAMAGE_OPTIONS, - { carId: "C00000000", zipCode: "11111" } + { carId: "C00000000" } ); }); }); @@ -526,7 +523,6 @@ describe("vehicle-damage.vue", () => { eventBusItem: jest.fn(), damage: { glassToReplace: [{ glassLocation: damageLocation }] }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getDamageLocationsFromStore(); @@ -604,7 +600,6 @@ describe("vehicle-damage.vue", () => { isRepair: isRepair, numberOfChips: 2, }, - order: { serviceLocation: { zipCode: "11111" } }, }; var windshieldSelections = wrapper.vm.getWindshieldOptionsFromStore(); @@ -641,7 +636,6 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getDriverSideReplaceOptionsFromStore(); @@ -678,7 +672,6 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getPassengerSideReplaceOptionsFromStore(); @@ -713,7 +706,6 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - order: { serviceLocation: { zipCode: "11111" } }, }; var glassSelections = wrapper.vm.getRearReplaceOptionsFromStore(); @@ -746,7 +738,6 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: true } }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }, @@ -787,7 +778,6 @@ function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData, funnelCo isVerified: false, }, }, - order: { serviceLocation: { zipCode: "11111" } }, }, }, }; diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 1b714c5c9..c03fabda1 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -81,7 +81,6 @@ import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; -import { queryStrings } from "@/constants/query-strings"; // DEFINE VALIDATION RULES defineRule("replace-options-required", required(errorMessages.REPLACE_OPTIONS_REQUIRED)); @@ -90,20 +89,10 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); - const queryString = window.location.search; - const urlParams = new URLSearchParams(queryString); - const lowerCaseParams = new URLSearchParams(); - for (const [name, value] of urlParams) { - lowerCaseParams.append(name.toLowerCase(), value); - } - - const zip = lowerCaseParams.get(queryStrings.ZIP_CODE) - ? lowerCaseParams.get(queryStrings.ZIP_CODE) - : store.getters.order.serviceLocation.zipCode; const damageOptionsPromise = baseMixin.methods.dispatchStoreAction( storeActions.GET_DAMAGE_OPTIONS, - { carId: store.getters.vehicle.carId, zipCode: zip } + { carId: store.getters.vehicle.carId } ); // Settle promises and get results diff --git a/src/store/index.js b/src/store/index.js index abefc2b5d..0ee76d098 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -13,7 +13,8 @@ import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { deleteFunnelCookie } from "@/helpers/heritage-integration/cookie-helper.js"; import { deepEqual } from "@/helpers/object-helper"; import { AppointmentTypeStrings, PREMIUM_FEE_PART_TYPE } from "@/constants/schedule-constants"; - +import { getQuerystringParameter } from "@/helpers/querystring-helper"; +import { queryStrings } from "@/constants/query-strings"; // Export State const getDefaultState = () => { return { @@ -740,12 +741,13 @@ export const actions = { }); }, - getDamageOptions(context, { carId, zipCode }) { + getDamageOptions(context, { carId }) { return globalMethods.callHttpClient({ methods: endpoints.GetDamageOptions.method, endpoint: `${endpoints.GetDamageOptions.url}/${carId}`, payload: {}, - additionalSuccessEventDataHandler: (response) => "QueryStringZip: " + zipCode, + additionalSuccessEventDataHandler: (response) => + "QueryStringZip: " + getQuerystringParameter(queryStrings.ZIP_CODE), }); },