From 512072df92e7f8e39c7c132bef23cd3f17eed2bb Mon Sep 17 00:00:00 2001 From: Hanif Dwy Putra S <47862061+hansputera@users.noreply.github.com> Date: Fri, 29 Jul 2022 11:32:49 +0000 Subject: [PATCH] feat(middleware.ratelimit): use "await client.get" instead than callback Signed-off-by: Hanif Dwy Putra S <47862061+hansputera@users.noreply.github.com> --- apps/web/middleware/ratelimit.ts | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/apps/web/middleware/ratelimit.ts b/apps/web/middleware/ratelimit.ts index 72074ff..973cec7 100644 --- a/apps/web/middleware/ratelimit.ts +++ b/apps/web/middleware/ratelimit.ts @@ -14,18 +14,22 @@ export const ratelimitMiddleware = async ( .status(401) .json({message: "Couldn't find your real ip address."}); } - client.get('rate-' + ip, (_, result) => { - if (result) { - if (parseInt(result) > rateLimitConfig.maxRatelimitPerXSeconds) { - return res.status(429).json({ - message: 'Please try again, you are getting ratelimit!', - }); - } - client.incr('rate-' + ip); - return true; - } else { - client.set('rate-' + ip, '1', 'EX', rateLimitConfig.ratelimitTime); - return true; + const result = await client.get('rate-'.concat(ip.toString())); + if (result) { + if (parseInt(result) > rateLimitConfig.maxRatelimitPerXSeconds) { + return res.status(429).json({ + message: 'Please try again, you are getting ratelimit!', + }); } - }); + client.incr('rate-'.concat(ip.toString())); + return true; + } else { + client.set( + 'rate-'.concat(ip.toString()), + '1', + 'EX', + rateLimitConfig.ratelimitTime, + ); + return true; + } };