The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/server/services/analytics/service.ts

22 lines
869 B

import type { IAnalyticsSeatRequest } from '@rocket.chat/core-typings';
import { Analytics } from '@rocket.chat/models';
import { ServiceClassInternal } from '@rocket.chat/core-services';
import type { IAnalyticsService } from '@rocket.chat/core-services';
export class AnalyticsService extends ServiceClassInternal implements IAnalyticsService {
protected name = 'analytics';
async saveSeatRequest(): Promise<void> {
await Analytics.update({ type: 'seat-request' }, { $inc: { count: 1 } }, { upsert: true });
}
async getSeatRequestCount(): Promise<number> {
const result = (await Analytics.findOne({ type: 'seat-request' }, {})) as IAnalyticsSeatRequest | null;
return result?.count ? result.count : 0;
}
async resetSeatRequestCount(): Promise<void> {
await Analytics.update({ type: 'seat-request' }, { $set: { count: 0 } }, { upsert: true });
}
}