summary refs log tree commit diff
path: root/src/middlewares/RateLimit.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/middlewares/RateLimit.ts')
-rw-r--r--src/middlewares/RateLimit.ts47
1 files changed, 5 insertions, 42 deletions
diff --git a/src/middlewares/RateLimit.ts b/src/middlewares/RateLimit.ts

index 09d109e1..24f4013f 100644 --- a/src/middlewares/RateLimit.ts +++ b/src/middlewares/RateLimit.ts
@@ -1,45 +1,8 @@ -import { NextFunction, Request, Response } from "express"; +import { db, MongooseCache } from "@fosscord/server-util"; +import { NextFunction } from "express"; -import { getIpAdress } from "./GlobalRateLimit"; +const Cache = new MongooseCache(db.collection("ratelimit"), [], { onlyEvents: false }); -export function RateLimit({ count = 10, timespan = 1000 * 5, name = "/" }) { - return async (req: Request, res: Response, next: NextFunction) => { - return next(); - // TODO: use new db mongoose models - /* - - let id = req.user_id || getIpAdress(req); - - const limit: { count: number; start: number } = (await db.data.ratelimit.routes[name][id].get()) || { - count: 0, - start: Date.now(), - }; - - if (limit.start < Date.now() - timespan) { - limit.start = Date.now(); - limit.count = 0; - } - - if (limit.count > count) { - const wait = Date.now() - limit.start; - - return res - .set("Retry-After", `${wait.toFixed(0)}`) - .set("X-RateLimit-Limit", `${count}`) - .set("X-RateLimit-Remaining", "0") - .set("X-RateLimit-Reset", `${limit.start + wait}`) - .set("X-RateLimit-Reset-After", `${wait}`) - .set("X-RateLimit-Bucket", name) - .set("X-RateLimit-Global", "false") - .status(429) - .json({ - message: "You are being rate limited.", - retry_after: wait, - global: false, - }); - } - - return next(); - */ - }; +export default function RateLimit({}) { + return async (req: Request, res: Response, next: NextFunction) => {}; }