import { Injectable, NestMiddleware } from '@nestjs/common';
import rateLimit from 'express-rate-limit';

const loginLimiter = rateLimit({
    windowMs: 1 * 60 * 1000, // 1 minutes
    max: 180, // limit each IP to 180 requests per windowMs per minutes
    message: {
        statusCode : 429,
        message : "Too many attempts,please try again after 1 minutes.",
    }
});

@Injectable()
export class RateLimiterMiddleware implements NestMiddleware {
    use(req: any, res: any, next: () => void) {
        loginLimiter(req, res, next)
    }
}
