summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/code_quality_walkthrough/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/code_quality_walkthrough/utils.js')
-rw-r--r--app/assets/javascripts/code_quality_walkthrough/utils.js38
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 });
+ }
+}