2
0
Fork 0
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:
Robin Ward 2015-09-24 13:52:32 -04:00
parent 3620c8c85e
commit 0b4cb5cf0d
4 changed files with 34 additions and 5 deletions

View file

@ -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