Skip to content

Commit 6c58e6a

Browse files
Track sessions count per analytics project
Each sessions count should be tracked per project for which it is started. Currently we were using the same counter for all sessions. Fix this by using separate counter for each project. Remove the old key ("SESSIONS_STARTED") and use it as current value for the new key (`SESSIONS_STARTED_<analytics_project_key>`) in case it existed.
1 parent 777e18e commit 6c58e6a

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

lib/services/analytics-settings-service.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import { createGUID } from "../common/helpers";
44

55
class AnalyticsSettingsService implements IAnalyticsSettingsService {
6+
private static SESSIONS_STARTED_OBSOLETE_KEY = "SESSIONS_STARTED";
7+
private static SESSIONS_STARTED_KEY_PREFIX = "SESSIONS_STARTED_";
8+
69
constructor(private $userSettingsService: UserSettings.IUserSettingsService,
710
private $staticConfig: IStaticConfig,
811
private $logger: ILogger) { }
@@ -33,14 +36,23 @@ class AnalyticsSettingsService implements IAnalyticsSettingsService {
3336
return "http://www.telerik.com/company/privacy-policy";
3437
}
3538

36-
public getUserSessionsCount(): IFuture<number> {
39+
public getUserSessionsCount(projectName: string): IFuture<number> {
3740
return (() => {
38-
return this.$userSettingsService.getSettingValue<number>("SESSIONS_STARTED").wait() || 0;
41+
let oldSessionCount = this.$userSettingsService.getSettingValue<number>(AnalyticsSettingsService.SESSIONS_STARTED_OBSOLETE_KEY).wait();
42+
if(oldSessionCount) {
43+
// remove the old property for sessions count
44+
this.$userSettingsService.removeSetting(AnalyticsSettingsService.SESSIONS_STARTED_OBSOLETE_KEY).wait();
45+
}
46+
return this.$userSettingsService.getSettingValue<number>(this.getSessionsProjectKey(projectName)).wait() || oldSessionCount || 0;
3947
}).future<number>()();
4048
}
4149

42-
public setUserSessionsCount(count: number): IFuture<void> {
43-
return this.$userSettingsService.saveSetting<number>("SESSIONS_STARTED", count);
50+
public setUserSessionsCount(count: number, projectName: string): IFuture<void> {
51+
return this.$userSettingsService.saveSetting<number>(this.getSessionsProjectKey(projectName), count);
52+
}
53+
54+
private getSessionsProjectKey(projectName: string): string {
55+
return `${AnalyticsSettingsService.SESSIONS_STARTED_KEY_PREFIX}${projectName}`;
4456
}
4557
}
4658
$injector.register("analyticsSettingsService", AnalyticsSettingsService);

0 commit comments

Comments
 (0)