From fa2923b83dc4df955b068660ac53fa6b6db500ad Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Tue, 18 Mar 2025 17:41:22 +0100 Subject: [PATCH] tracker: user/device id hardreset method --- tracker/tracker/src/main/modules/analytics/people.ts | 6 ++++++ .../src/main/modules/analytics/sharedProperties.ts | 9 +++++++-- .../modules/analytics/tests/sharedProperties.test.ts | 4 +++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/tracker/tracker/src/main/modules/analytics/people.ts b/tracker/tracker/src/main/modules/analytics/people.ts index 761ef2ff6..ec134b2f5 100644 --- a/tracker/tracker/src/main/modules/analytics/people.ts +++ b/tracker/tracker/src/main/modules/analytics/people.ts @@ -16,6 +16,12 @@ export default class People { // TODO: fetch endpoint when it will be here } + // add "hard" flag to force generate device id as well ? + reset = () => { + this.sharedProperties.resetUserId() + this.ownProperties = {} + } + get user_id() { return this.sharedProperties.user_id } diff --git a/tracker/tracker/src/main/modules/analytics/sharedProperties.ts b/tracker/tracker/src/main/modules/analytics/sharedProperties.ts index 82b362a9f..7d1aaa284 100644 --- a/tracker/tracker/src/main/modules/analytics/sharedProperties.ts +++ b/tracker/tracker/src/main/modules/analytics/sharedProperties.ts @@ -98,6 +98,11 @@ export default class SharedProperties { this.user_id = user_id } + resetUserId = () => { + this.user_id = null + this.deviceId = this.getDistinctDeviceId(true) + } + public get defaultPropertyKeys() { return Object.keys(this.all) } @@ -106,9 +111,9 @@ export default class SharedProperties { return this.deviceId } - private getDistinctDeviceId = () => { + private getDistinctDeviceId = (force?: boolean) => { const potentialStored = this.localStorage.getItem(distinctIdKey) - if (potentialStored) { + if (potentialStored && !force) { return potentialStored } else { const distinctId = `${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}` diff --git a/tracker/tracker/src/main/modules/analytics/tests/sharedProperties.test.ts b/tracker/tracker/src/main/modules/analytics/tests/sharedProperties.test.ts index 3b6fbde12..029f22deb 100644 --- a/tracker/tracker/src/main/modules/analytics/tests/sharedProperties.test.ts +++ b/tracker/tracker/src/main/modules/analytics/tests/sharedProperties.test.ts @@ -157,7 +157,9 @@ describe('SharedProperties', () => { $utm_medium: 'test_medium', $utm_campaign: 'test_campaign', $distinct_id: expect.stringMatching(/^[a-z0-9]{6,12}-[a-z0-9]{6,12}-[a-z0-9]{6,12}$/), - $search_engine: null + $search_engine: null, + $user_id: null, + $device_id: expect.stringMatching(/^[a-z0-9]{6,12}-[a-z0-9]{6,12}-[a-z0-9]{6,12}$/), }) })