mirror of
https://github.com/status-im/contract-notifier.git
synced 2025-02-24 08:58:11 +00:00
23 lines
636 B
JavaScript
23 lines
636 B
JavaScript
const rateLimit = require("express-rate-limit");
|
|
const config = require("../config");
|
|
|
|
class RateLimitMiddleware {
|
|
static setup() {
|
|
const windowMs = config.RATE_LIMIT_TIME;
|
|
const maxReq = config.RATE_LIMIT_MAX_REQ;
|
|
let limiter = rateLimit({
|
|
windowMs: windowMs,
|
|
max: maxReq,
|
|
handler: function(req, res) {
|
|
console.warn(this.message);
|
|
res.status(this.statusCode).send({ error: this.message });
|
|
},
|
|
message: `Rate limit was reached, you are able to do ${maxReq} requests per ${windowMs} milliseconds`
|
|
});
|
|
|
|
return limiter;
|
|
}
|
|
}
|
|
|
|
module.exports = RateLimitMiddleware.setup;
|