handle method
Implementation
@override
Future<void> handle(Request req) async {
if (bypassInDevelopment &&
env<String>('APP_ENV', 'development') == 'development') {
return;
}
final String identifier = await _getRequestIdentifier(req);
final remaining = _throttle.remainingAttempts(identifier);
_addRateLimitHeaders(req.response, remaining);
if (!_throttle.request(identifier)) {
final retryAfter = _throttle.retryAfter(identifier);
throw ThrottleException(
message: customMessage ?? 'Too Many Requests. Please try again later.',
code: HttpStatus.tooManyRequests,
headers: {
'Retry-After': retryAfter.inSeconds.toString(),
...?headers,
},
);
}
}