From 76e4fe51b5f4f57d6a382cab389edfe7242b51bf Mon Sep 17 00:00:00 2001 From: ElisarEisenbach Date: Thu, 30 Mar 2023 14:42:35 +0300 Subject: [PATCH] Refactoring analytics (#311) * exampple * send call type in function * remove heap check --------- Co-authored-by: itielshwartz --- pkg/dashboard/static/analytics.js | 40 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/pkg/dashboard/static/analytics.js b/pkg/dashboard/static/analytics.js index b6c9032e..ef738468 100644 --- a/pkg/dashboard/static/analytics.js +++ b/pkg/dashboard/static/analytics.js @@ -1,6 +1,17 @@ const xhr = new XMLHttpRequest(); - - +const TRACK_EVENT_TYPE = "track" +const IDENTIFY_EVENT_TYPE = "identify" +const BASE_ANALYTIC_MSG = { + method: "POST", + mode: "cors", + cache: "no-cache", + headers: { + "Content-Type": "application/json", + "api-key": "komodor.analytics@admin.com", + }, + redirect: "follow", + referrerPolicy: "no-referrer" +} xhr.onload = function () { if (xhr.readyState === XMLHttpRequest.DONE) { @@ -75,44 +86,31 @@ function sendStats(name, prop) { } function enableSegmentBackend(version, ClusterMode) { - sendToSegmentThroughAPI("helm dashboard loaded", {version, 'installationMode': ClusterMode ? "cluster" : "local"}) + sendToSegmentThroughAPI("helm dashboard loaded", {version, 'installationMode': ClusterMode ? "cluster" : "local"}, TRACK_EVENT_TYPE) } -function sendToSegmentThroughAPI(eventName, properties) { - if (window.heap) { +function sendToSegmentThroughAPI(eventName, properties, segmentCallType) { const userId = getUserId(); try { - sendData(properties, "track", userId, eventName); + sendData(properties, segmentCallType, userId, eventName); } catch (e) { console.log("failed sending data to segment", e); } - } } function sendData(data, eventType, userId, eventName) { const body = createBody(eventType, userId, data, eventName); - ANALYTICS_ADMIN_USER_EMAIL = "komodor.analytics@admin.com" - const auth_skipper = ANALYTICS_ADMIN_USER_EMAIL; return fetch(`https://api.komodor.com/analytics/segment/${eventType}`, { - method: "POST", - mode: "cors", - cache: "no-cache", - //credentials: "include", - headers: { - "Content-Type": "application/json", - "api-key": auth_skipper, - }, - redirect: "follow", - referrerPolicy: "no-referrer", + ...BASE_ANALYTIC_MSG, body: JSON.stringify(body), }); } function createBody(segmentCallType, userId, params, eventName) { const data = {userId: userId}; - if (segmentCallType === "identify") { + if (segmentCallType === IDENTIFY_EVENT_TYPE) { data["traits"] = params; - } else if (segmentCallType === "track") { + } else if (segmentCallType === TRACK_EVENT_TYPE) { if (!eventName) { throw new Error("no eventName parameter on segment track call"); }