From 5fb99059170271775be7be6fb8db129d0566b2b7 Mon Sep 17 00:00:00 2001 From: wonderlandpark Date: Mon, 8 Mar 2021 19:39:59 +0900 Subject: [PATCH] feat: added global ratelimit header --- api-docs | 2 +- pages/api/v1/bots/servers.ts | 3 ++- pages/api/v2/bots/[id]/stats.ts | 3 ++- utils/RequestHandler.ts | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/api-docs b/api-docs index 73fe912..797f33c 160000 --- a/api-docs +++ b/api-docs @@ -1 +1 @@ -Subproject commit 73fe912a9513ea23e8cd07018646d4e7f95f7669 +Subproject commit 797f33cbf6f1cc35ed690b8ca135c3f40ac18c4d diff --git a/pages/api/v1/bots/servers.ts b/pages/api/v1/bots/servers.ts index e42f264..c68bc3e 100644 --- a/pages/api/v1/bots/servers.ts +++ b/pages/api/v1/bots/servers.ts @@ -12,7 +12,8 @@ const limiter = rateLimit({ statusCode: 429, handler: (_req, res) => ResponseWrapper(res, { code: 429 }), keyGenerator: (req) => req.headers.authorization, - skip: (req) => { + skip: (req, res) => { + res.removeHeader('X-RateLimit-Global') if(!req.headers.authorization) return true else return false } diff --git a/pages/api/v2/bots/[id]/stats.ts b/pages/api/v2/bots/[id]/stats.ts index 715ccca..c0685d6 100644 --- a/pages/api/v2/bots/[id]/stats.ts +++ b/pages/api/v2/bots/[id]/stats.ts @@ -12,7 +12,8 @@ const limiter = rateLimit({ statusCode: 429, handler: (_req, res) => ResponseWrapper(res, { code: 429 }), keyGenerator: (req) => req.headers.authorization, - skip: (req) => { + skip: (req, res) => { + res.removeHeader('X-RateLimit-Global') if(!req.headers.authorization) return true else return false } diff --git a/utils/RequestHandler.ts b/utils/RequestHandler.ts index 40cfb49..67461b3 100644 --- a/utils/RequestHandler.ts +++ b/utils/RequestHandler.ts @@ -11,7 +11,8 @@ const limiter = rateLimit({ statusCode: 429, handler: (_req, res) => ResponseWrapper(res, { code: 429 }), keyGenerator: (req) => req.headers['x-forwarded-for'] as string, - skip: (req) => { + skip: (req, res) => { + res.setHeader('X-RateLimit-Global', 'true') if(GlobalRatelimitIgnore.map(el => req.url.startsWith(el)).find(el => el)) return true return false }