Skip to content

Commit 3bff851

Browse files
Merge pull request #4409 from RedisInsight/feature/RI-6928-enhance-analytics
RI-6928 enhance analytics anonymous id generation
2 parents 314636e + daa4ba9 commit 3bff851

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

redisinsight/api/src/__mocks__/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ import { mockSessionMetadata } from 'src/__mocks__/common';
22

33
export const mockConstantsProvider = jest.fn(() => ({
44
getSystemSessionMetadata: jest.fn().mockReturnValue(mockSessionMetadata),
5+
getAnonymousId: jest.fn().mockReturnValue(mockSessionMetadata.userId),
56
}));

redisinsight/api/src/modules/analytics/analytics.service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
mockAppSettings,
44
mockAppSettingsWithoutPermissions,
55
mockAppVersion,
6-
mockConstantsProvider,
76
mockControlGroup,
87
mockControlNumber,
98
mockSessionMetadata,
@@ -14,6 +13,7 @@ import { TelemetryEvents } from 'src/constants';
1413
import { AppType } from 'src/modules/server/models/server';
1514
import { SettingsService } from 'src/modules/settings/settings.service';
1615
import { ConstantsProvider } from 'src/modules/constants/providers/constants.provider';
16+
import { LocalConstantsProvider } from 'src/modules/constants/providers/local.constants.provider';
1717
import {
1818
AnalyticsService,
1919
Telemetry,
@@ -49,7 +49,7 @@ describe('AnalyticsService', () => {
4949
},
5050
{
5151
provide: ConstantsProvider,
52-
useFactory: mockConstantsProvider,
52+
useClass: LocalConstantsProvider,
5353
},
5454
],
5555
}).compile();

redisinsight/api/src/modules/analytics/analytics.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export class AnalyticsService {
7070
* @param sessionMetadata
7171
*/
7272
public getAnonymousId(sessionMetadata?: SessionMetadata): string {
73-
return this.anonymousId ?? sessionMetadata?.userId ?? 'unknown';
73+
return this.anonymousId ?? this.constantsProvider.getAnonymousId(sessionMetadata);
7474
}
7575

7676
/**
@@ -96,7 +96,7 @@ export class AnalyticsService {
9696

9797
public async init(initConfig: ITelemetryInitEvent) {
9898
const {
99-
anonymousId, sessionId, appType, controlNumber, controlGroup, appVersion, firstStart, sessionMetadata
99+
anonymousId, sessionId, appType, controlNumber, controlGroup, appVersion, firstStart, sessionMetadata,
100100
} = initConfig;
101101
this.sessionId = sessionId;
102102
this.anonymousId = anonymousId;

redisinsight/api/src/modules/constants/providers/constants.provider.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,10 @@ export abstract class ConstantsProvider {
88
* For example onModuleInit step or in some automatic actions generated by system
99
*/
1010
abstract getSystemSessionMetadata(): SessionMetadata;
11+
12+
/**
13+
* Should return generated anonymous id based on sessionMetadata or default value
14+
* @param sessionMetadata
15+
*/
16+
abstract getAnonymousId(sessionMetadata?: SessionMetadata): string;
1117
}

redisinsight/api/src/modules/constants/providers/local.constants.provider.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,11 @@ export class LocalConstantsProvider extends ConstantsProvider {
1111
sessionId: '1',
1212
};
1313
}
14+
15+
/**
16+
* @inheritDoc
17+
*/
18+
getAnonymousId(sessionMetadata?: SessionMetadata): string {
19+
return sessionMetadata?.userId ?? 'unknown';
20+
}
1421
}

0 commit comments

Comments
 (0)