diff --git a/src/constants/experiments.js b/src/constants/experiments.js index b5af7dbc..f1d52ede 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -1,5 +1,7 @@ const experimentUniverses = Object.freeze({ - ISS_FUNNEL: 'ISSFunnel' + ISS_FUNNEL: 'ISSFunnel', + ISS_FEATURETOGGLE_AREFEES_HIDDEN: 'NextGenISS_FeatureToggle_AreFeesHidden', + ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN: 'NextGenISS_FeatureToggle_AreFeesOverridden' }); const experimentSettings = Object.freeze({ diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 0298a45c..edfcab02 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -202,9 +202,9 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs const cmsContentPromise = fetchCmsContentForPage(to.query.issPage); - const cmsGlobalSiteHeaderContentPromise = - fetchGlobalCmsContent('iss-siteheader'); + const cmsGlobalSiteHeaderContentPromise = fetchGlobalCmsContent('iss-siteheader'); + useMainStore().logWelcomePageExperiments(to.query.issPage); // Settle promises and get results const promiseResultMap = [ { diff --git a/src/store/index.js b/src/store/index.js index 79eea573..ae4587b5 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -6,7 +6,7 @@ import { endpoints } from '@/constants/endpoints'; import { getDateForSavedSessionTimeout } from '@/helpers/session-helper'; // eslint-disable-next-line import/no-cycle import globalMethods from '@/global-methods'; -import { experimentTriggers } from '@/constants/experiments'; +import { experimentTriggers, experimentUniverses } from '@/constants/experiments'; import applicationConfig from '@/constants/application-config'; import issPageValues from '@/router/router-constants/issPage-values'; import damageLocationsSelected from '@/constants/damage-locations-selected'; @@ -29,6 +29,7 @@ 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'; +import { getSessionKeyValue, getUserIdValue } from '@/helpers/cookie-helper'; const storeId = 'main'; @@ -2202,9 +2203,8 @@ export const useMainStore = defineStore({ this.order.schedule.jobMinMinutes = scheduleInfo.jobMinMinutes; } }, - // Analytics Actions - logExperimentExposure({ userId, sessionKey, pageName, experiment }) { + logExperimentExposure(userId, sessionKey, pageName, experiment) { return globalMethods.callHttpClient({ method: endpoints.LogExperimentExposureIfAssigned.method, endpoint: endpoints.LogExperimentExposureIfAssigned.url, @@ -2281,6 +2281,21 @@ export const useMainStore = defineStore({ } ); }, + logWelcomePageExperiments(issPage) { + const hideFeesExperiment = this.applicationUser.experiments.find((e) => e.universeName === experimentUniverses.ISS_FEATURETOGGLE_AREFEES_HIDDEN); + const overrideFeesExperiment = this.applicationUser.experiments.find((e) => e.universeName === experimentUniverses.ISS_FEATURETOGGLE_AREFEES_OVERRIDDEN); + + if ((hideFeesExperiment !== undefined) || (overrideFeesExperiment !== undefined)) { + const userId = getUserIdValue(); + const sessionKey = getSessionKeyValue(); + if (hideFeesExperiment !== undefined) { + this.logExperimentExposure(userId, sessionKey, issPage, hideFeesExperiment); + } + if (overrideFeesExperiment !== undefined) { + this.logExperimentExposure(userId, sessionKey, issPage, overrideFeesExperiment); + } + } + }, initializeSession({ userId, sessionId, userAgent, referrer }) { const payload = { applicationName: applicationConfig.APPLICATION_NAME,