diff options
Diffstat (limited to 'app/assets/javascripts/code_quality_walkthrough/utils.js')
-rw-r--r-- | app/assets/javascripts/code_quality_walkthrough/utils.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/assets/javascripts/code_quality_walkthrough/utils.js b/app/assets/javascripts/code_quality_walkthrough/utils.js new file mode 100644 index 00000000000..97c80f6eff7 --- /dev/null +++ b/app/assets/javascripts/code_quality_walkthrough/utils.js @@ -0,0 +1,38 @@ +import { TRACKING_CONTEXT_SCHEMA } from '~/experimentation/constants'; +import { getExperimentData } from '~/experimentation/utils'; +import { setCookie, getCookie, getParameterByName } from '~/lib/utils/common_utils'; +import Tracking from '~/tracking'; +import { EXPERIMENT_NAME } from './constants'; + +export function getExperimentSettings() { + return JSON.parse(getCookie(EXPERIMENT_NAME) || '{}'); +} + +export function setExperimentSettings(settings) { + setCookie(EXPERIMENT_NAME, settings); +} + +export function isWalkthroughEnabled() { + return getParameterByName(EXPERIMENT_NAME); +} + +export function track(action) { + const { data } = getExperimentSettings(); + + if (data) { + Tracking.event(EXPERIMENT_NAME, action, { + context: { + schema: TRACKING_CONTEXT_SCHEMA, + data, + }, + }); + } +} + +export function startCodeQualityWalkthrough() { + const data = getExperimentData(EXPERIMENT_NAME); + + if (data) { + setExperimentSettings({ data }); + } +} |