diff options
Diffstat (limited to 'app/assets/javascripts/ide/lib/gitlab_web_ide/handle_tracking_event.js')
-rw-r--r-- | app/assets/javascripts/ide/lib/gitlab_web_ide/handle_tracking_event.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/assets/javascripts/ide/lib/gitlab_web_ide/handle_tracking_event.js b/app/assets/javascripts/ide/lib/gitlab_web_ide/handle_tracking_event.js new file mode 100644 index 00000000000..615dad02386 --- /dev/null +++ b/app/assets/javascripts/ide/lib/gitlab_web_ide/handle_tracking_event.js @@ -0,0 +1,20 @@ +import { snakeCase } from 'lodash'; +import { convertObjectPropsToSnakeCase } from '~/lib/utils/common_utils'; +import Tracking from '~/tracking'; + +export const handleTracking = ({ name, data }) => { + const snakeCaseEventName = snakeCase(name); + + if (data && Object.keys(data).length) { + Tracking.event(undefined, snakeCaseEventName, { + /* See GitLab snowplow schema for a definition of the extra field + * https://docs.gitlab.com/ee/development/snowplow/schemas.html#gitlab_standard. + */ + extra: convertObjectPropsToSnakeCase(data, { + deep: true, + }), + }); + } else { + Tracking.event(undefined, snakeCaseEventName); + } +}; |