mirror of
https://github.com/discourse/discourse.git
synced 2025-09-05 08:59:27 +08:00
Add better error messages for rate limits.
This commit is contained in:
parent
3620c8c85e
commit
0b4cb5cf0d
4 changed files with 34 additions and 5 deletions
|
@ -27,9 +27,14 @@ class RateLimiter
|
|||
$redis.delete_prefixed(RateLimiter.key_prefix)
|
||||
end
|
||||
|
||||
def initialize(user, key, max, secs)
|
||||
def build_key(type)
|
||||
"#{RateLimiter.key_prefix}:#{@user && @user.id}:#{type}"
|
||||
end
|
||||
|
||||
def initialize(user, type, max, secs)
|
||||
@user = user
|
||||
@key = "#{RateLimiter.key_prefix}:#{@user && @user.id}:#{key}"
|
||||
@type = type
|
||||
@key = build_key(type)
|
||||
@max = max
|
||||
@secs = secs
|
||||
end
|
||||
|
@ -53,7 +58,7 @@ class RateLimiter
|
|||
# let's ensure we expire this key at some point, otherwise we have leaks
|
||||
$redis.expire(@key, @secs * 2)
|
||||
else
|
||||
raise LimitExceeded.new(seconds_to_wait)
|
||||
raise RateLimiter::LimitExceeded.new(seconds_to_wait, @type)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue