Skip to content

Commit 1cbfea0

Browse files
committed
Refactoring
1 parent ec5830e commit 1cbfea0

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

.env.testing

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,5 @@ REDIS_USERNAME=default
99
REDIS_PASSWORD=password
1010

1111
# RATE LIMITER
12-
RATE_LIMITER_ENABLED=true
1312
RATE_LIMITER_MAX_REQUESTS=5
14-
RATE_LIMITER_TIME_WINDOW=60000
13+
RATE_LIMITER_TIME_WINDOW_SECONDS=60

src/middlewares/rate-limiter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const rateLimiter = async (req: Request, res: Response, next: NextFunctio
1010

1111
const key = `rate-limiter:${ip}`;
1212

13-
const current = await getCurrentWindow(key, Number(process.env.RATE_LIMITER_TIME_WINDOW));
13+
const current = await getCurrentWindow(key, Number(process.env.RATE_LIMITER_TIME_WINDOW_SECONDS));
1414

1515
if (current + 1 > Number(process.env.RATE_LIMITER_MAX_REQUESTS)) {
1616
return res.status(429).json({

src/router.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import { rateLimiter } from './middlewares/rate-limiter';
33

44
const app = express();
55

6-
if (process.env.RATE_LIMITER_ENABLED === 'true') {
7-
app.use(rateLimiter.bind(this));
8-
}
6+
app.use(rateLimiter);
97

108
app.get('/', (req, res) => res.json({ message: 'Hello World!' }));
119

src/utils/rate-limiter.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import { client } from "./redis";
33
export const getCurrentWindow = async (key: string, slidingWindow: number): Promise<number> => {
44
const now = Date.now();
55

6+
// tslint:disable-next-line:no-console
7+
console.log(slidingWindow);
8+
69
const [, currentWindow] = await client.multi()
7-
.zRemRangeByScore(key, 0, now - slidingWindow)
10+
.zRemRangeByScore(key, 0, now - slidingWindow * 1000)
811
.zCard(key)
912
.zAdd(key, { score: now, value: now.toString() })
1013
.expire(key, slidingWindow)

0 commit comments

Comments
 (0)