summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/RateLimiterService.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/RateLimiterService.ts')
-rw-r--r--packages/backend/src/server/api/RateLimiterService.ts14
1 files changed, 9 insertions, 5 deletions
diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts
index d390a47b8f..61b7b1ff47 100644
--- a/packages/backend/src/server/api/RateLimiterService.ts
+++ b/packages/backend/src/server/api/RateLimiterService.ts
@@ -2,17 +2,21 @@ import { Inject, Injectable } from '@nestjs/common';
import Limiter from 'ratelimiter';
import Redis from 'ioredis';
import { DI } from '@/di-symbols.js';
-import Logger from '@/logger.js';
+import type Logger from '@/logger.js';
+import { LoggerService } from '@/core/LoggerService.js';
import type { IEndpointMeta } from './endpoints.js';
-const logger = new Logger('limiter');
-
@Injectable()
export class RateLimiterService {
+ #logger: Logger;
+
constructor(
@Inject(DI.redis)
private redisClient: Redis.Redis,
+
+ private loggerService: LoggerService,
) {
+ this.#logger = this.loggerService.getLogger('limiter');
}
public limit(limitation: IEndpointMeta['limit'] & { key: NonNullable<string> }, actor: string) {
@@ -33,7 +37,7 @@ export class RateLimiterService {
return reject('ERR');
}
- logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`);
+ this.#logger.debug(`${actor} ${limitation.key} min remaining: ${info.remaining}`);
if (info.remaining === 0) {
reject('BRIEF_REQUEST_INTERVAL');
@@ -61,7 +65,7 @@ export class RateLimiterService {
return reject('ERR');
}
- logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`);
+ this.#logger.debug(`${actor} ${limitation.key} max remaining: ${info.remaining}`);
if (info.remaining === 0) {
reject('RATE_LIMIT_EXCEEDED');