Add rate limit for reporting (#13390)
parent
eea0cd8fad
commit
c9efb400b4
|
@ -4,6 +4,8 @@ class Api::V1::ReportsController < Api::BaseController
|
||||||
before_action -> { doorkeeper_authorize! :write, :'write:reports' }, only: [:create]
|
before_action -> { doorkeeper_authorize! :write, :'write:reports' }, only: [:create]
|
||||||
before_action :require_user!
|
before_action :require_user!
|
||||||
|
|
||||||
|
override_rate_limit_headers :create, family: :reports
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@report = ReportService.new.call(
|
@report = ReportService.new.call(
|
||||||
current_account,
|
current_account,
|
||||||
|
|
|
@ -14,9 +14,9 @@ class RateLimiter
|
||||||
period: 3.hours.freeze,
|
period: 3.hours.freeze,
|
||||||
}.freeze,
|
}.freeze,
|
||||||
|
|
||||||
media: {
|
reports: {
|
||||||
limit: 30,
|
limit: 400,
|
||||||
period: 30.minutes.freeze,
|
period: 24.hours.freeze,
|
||||||
}.freeze,
|
}.freeze,
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
|
|
||||||
class Report < ApplicationRecord
|
class Report < ApplicationRecord
|
||||||
include Paginable
|
include Paginable
|
||||||
|
include RateLimitable
|
||||||
|
|
||||||
|
rate_limit by: :account, family: :reports
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
belongs_to :target_account, class_name: 'Account'
|
belongs_to :target_account, class_name: 'Account'
|
||||||
|
|
Reference in New Issue