diff --git a/src/leaderboard/leaderboard.service.ts b/src/leaderboard/leaderboard.service.ts index 0333c53..9f2f645 100644 --- a/src/leaderboard/leaderboard.service.ts +++ b/src/leaderboard/leaderboard.service.ts @@ -2,10 +2,11 @@ import { AnalyticsDto } from '@/common/dto/leaderboard'; import getLeaderBoardDataFROMJSON from '@/common/utils/getLeaderBoardDataFROMJSON'; import { LeaderboardTypeAnalytics } from '@/types/leaderboard'; import { Injectable, OnModuleInit } from '@nestjs/common'; +import { Cron, CronExpression } from '@nestjs/schedule'; @Injectable() export class LeaderboardService implements OnModuleInit { - onModuleInit() {} + constructor() {} // private readonly leaderboard: Model<>, // @InjectModel(Leaderboard.name) async getLeaderboardData(): Promise { const since = '2024-01-05T00:00:00Z'; @@ -16,4 +17,19 @@ export class LeaderboardService implements OnModuleInit { until, } as LeaderboardTypeAnalytics; } + + async onModuleInit(): Promise { + await this.handleCron(); + } + + @Cron(CronExpression.EVERY_10_MINUTES) + async handleCron() { + console.log('Running fetch and store leaderboard cron job'); + // Implement a delete function to delete old data 6 weeks or older + await this.saveLeaderboard(); + } + + private async saveLeaderboard() { + // Implement this + } }