From f86a428158aa5288f8a595df71aaba74565ab9cc Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Wed, 10 Jul 2024 10:35:18 -0400 Subject: [PATCH] Check if fees are hidden and hide cart row Pass experiment flags to price service --- src/helpers/experiment-helper.js | 21 +++++++++++++++++++ .../cart-dropdown/cart-dropdown.vue | 6 ++++-- src/store/index.js | 3 +++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/helpers/experiment-helper.js diff --git a/src/helpers/experiment-helper.js b/src/helpers/experiment-helper.js new file mode 100644 index 00000000..c0f0d3a8 --- /dev/null +++ b/src/helpers/experiment-helper.js @@ -0,0 +1,21 @@ +export function hasExperimentSetting(experimentSettings, settingName) { + return Object.hasOwn(experimentSettings, settingName); +} + +export function getExperimentSettingValue(experimentSettings, settingName) { + return hasExperimentSetting(experimentSettings, settingName) + ? experimentSettings[settingName] + : null; +} + +export function getFeatureTogglesQueryString(experimentSettings) { + const isMobileFeeHidden = getExperimentSettingValue(experimentSettings, 'HideMobileFee') === 'true'; + const isMobileFeeOverridden = getExperimentSettingValue(experimentSettings, 'OverrideMobileFee') === 'true'; + const isRecycleFeeHidden = getExperimentSettingValue(experimentSettings, 'HideRecycleFee') === 'true'; + const isRecycleFeeOverridden = getExperimentSettingValue(experimentSettings, 'OverrideRecycleFee') === 'true'; + + return `FeatureToggles.IsMobileFeeHidden=${isMobileFeeHidden}` + + `&FeatureToggles.IsMobileFeeOverridden=${isMobileFeeOverridden}` + + `&FeatureToggles.IsRecycleFeeHidden=${isRecycleFeeHidden}` + + `&FeatureToggles.IsRecycleFeeOverridden=${isRecycleFeeOverridden}`; +} diff --git a/src/iss-components/cart-dropdown/cart-dropdown.vue b/src/iss-components/cart-dropdown/cart-dropdown.vue index c7eb6a57..f181d6e8 100644 --- a/src/iss-components/cart-dropdown/cart-dropdown.vue +++ b/src/iss-components/cart-dropdown/cart-dropdown.vue @@ -322,10 +322,12 @@ export default { } }); const items = vapsCartItemsNotInPackage.filter((item) => item != null); - if (this.recycleFeeCartItem) { + const isRecycleFeeHidden = this.getSettingValue('HideRecycleFee') === 'true'; + const isMobileFeeHidden = this.getSettingValue('HideMobileFee') === 'true'; + if (this.recycleFeeCartItem && !isRecycleFeeHidden) { items.push(this.recycleFeeCartItem); } - if (this.mobileFeeCartItem) { + if (this.mobileFeeCartItem && !isMobileFeeHidden) { items.push(this.mobileFeeCartItem); } return items; diff --git a/src/store/index.js b/src/store/index.js index c36f5887..3ba9011f 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -28,6 +28,7 @@ import partNumberStrings from '@/constants/part-number-strings'; import { getLineItemsFlattened } from '@/helpers/line-items-helper'; import { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString, getTaxLineItemQueryString } from '@/helpers/querystring-helper'; import coverageType from '@/constants/coverage-type'; +import { getFeatureTogglesQueryString } from '@/helpers/experiment-helper'; const storeId = 'main'; @@ -1034,6 +1035,7 @@ export const useMainStore = defineStore({ async getInsurancePriceOrderItems(availableLineItems) { const { serviceLocation, currentDeductible } = this.order; const lineItemsQueryString = getLineItemQueryString(availableLineItems, 'lineItems'); + const featureTogglesQueryString = getFeatureTogglesQueryString(this.experimentSettings); let queryString = `ParentAccountNumber=${this.order.parentAccountNumber}` @@ -1041,6 +1043,7 @@ export const useMainStore = defineStore({ + `&CTU=${serviceLocation.zipCodeCtu}` + `&Deductible=${currentDeductible ?? 0}` + `&ZipCode=${serviceLocation.zipCode}` + + `&${featureTogglesQueryString}` + `${lineItemsQueryString}`; const lineItemServerData = this.order.lineItems?.serverData;