Add log exposure to before enter on welcome page.

This commit is contained in:
Bill Richardson 2024-07-15 16:09:30 -04:00
parent cae761de2d
commit d3b553643b
3 changed files with 23 additions and 6 deletions

View file

@ -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({

View file

@ -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 = [
{

View file

@ -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,