add rate limit

This commit is contained in:
Pete Matsyburka
2024-03-16 23:19:47 +02:00
parent 265b668cb4
commit 749722a9df
4 changed files with 33 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# frozen_string_literal: true
module RateLimit
LimitApproached = Class.new(StandardError)
STORE = ActiveSupport::Cache::MemoryStore.new
module_function
def call(key, limit:, ttl:, enabled: Docuseal.multitenant?)
return true unless enabled
value = STORE.increment(key, 1, expires_in: ttl)
raise LimitApproached if value > limit
true
end
end