diff --git a/src/middleware/requestRateLimit.ts b/src/middleware/requestRateLimit.ts index 06fde41..853738e 100644 --- a/src/middleware/requestRateLimit.ts +++ b/src/middleware/requestRateLimit.ts @@ -6,9 +6,10 @@ import { RateLimitConfig } from "../types/config.model"; import { Request } from "express"; import { isUserVIP } from "../utils/isUserVIP"; import { UserID } from "../types/user.model"; -import RedisStore from "rate-limit-redis"; +import RedisStore, { RedisReply } from "rate-limit-redis"; import redis from "../utils/redis"; import { config } from "../config"; +import { Logger } from "../utils/logger"; export function rateLimitMiddleware(limitConfig: RateLimitConfig, getUserID?: (req: Request) => UserID): RateLimitRequestHandler { return rateLimit({ @@ -29,7 +30,7 @@ export function rateLimitMiddleware(limitConfig: RateLimitConfig, getUserID?: (r } }, store: config.redis?.enabled ? new RedisStore({ - sendCommand: (...args: string[]) => redis.sendCommand(args), + sendCommand: (...args: string[]) => redis.sendCommand(args).catch((err) => Logger.error(err)) as Promise, }) : null, }); } diff --git a/src/utils/getHashCache.ts b/src/utils/getHashCache.ts index f801545..b3d0d7b 100644 --- a/src/utils/getHashCache.ts +++ b/src/utils/getHashCache.ts @@ -30,7 +30,7 @@ async function getFromRedis(key: HashedValue): Promise Logger.error(err)); return data as T & HashedValue; } \ No newline at end of file diff --git a/src/utils/queryCacher.ts b/src/utils/queryCacher.ts index 028c4e7..434d898 100644 --- a/src/utils/queryCacher.ts +++ b/src/utils/queryCacher.ts @@ -16,7 +16,7 @@ async function get(fetchFromDB: () => Promise, key: string): Promise { const data = await fetchFromDB(); - redis.set(key, JSON.stringify(data)); + redis.set(key, JSON.stringify(data)).catch((err) => Logger.error(err)); return data; } @@ -67,7 +67,7 @@ async function getAndSplit(fetchFromDB: (values: U[]) => Pr } for (const key in newResults) { - redis.set(key, JSON.stringify(newResults[key])); + redis.set(key, JSON.stringify(newResults[key])).catch((err) => Logger.error(err)); } }); } @@ -77,16 +77,16 @@ async function getAndSplit(fetchFromDB: (values: U[]) => Pr function clearSegmentCache(videoInfo: { videoID: VideoID; hashedVideoID: VideoIDHash; service: Service; userID?: UserID; }): void { if (videoInfo) { - redis.del(skipSegmentsKey(videoInfo.videoID, videoInfo.service)); - redis.del(skipSegmentGroupsKey(videoInfo.videoID, videoInfo.service)); - redis.del(skipSegmentsHashKey(videoInfo.hashedVideoID, videoInfo.service)); - if (videoInfo.userID) redis.del(reputationKey(videoInfo.userID)); + redis.del(skipSegmentsKey(videoInfo.videoID, videoInfo.service)).catch((err) => Logger.error(err)); + redis.del(skipSegmentGroupsKey(videoInfo.videoID, videoInfo.service)).catch((err) => Logger.error(err)); + redis.del(skipSegmentsHashKey(videoInfo.hashedVideoID, videoInfo.service)).catch((err) => Logger.error(err)); + if (videoInfo.userID) redis.del(reputationKey(videoInfo.userID)).catch((err) => Logger.error(err)); } } function clearRatingCache(videoInfo: { hashedVideoID: VideoIDHash; service: Service;}): void { if (videoInfo) { - redis.del(ratingHashKey(videoInfo.hashedVideoID, videoInfo.service)); + redis.del(ratingHashKey(videoInfo.hashedVideoID, videoInfo.service)).catch((err) => Logger.error(err)); } }