about summary refs log tree commit diff
path: root/app/models/report.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2022-02-10 00:10:16 +0100
committerGitHub <noreply@github.com>2022-02-10 00:10:16 +0100
commit2f8159baada8dcb59eb185732b8d9501401f8a83 (patch)
tree72dbe1639971ca8c5b7ebd1107d61781a4ae2dce /app/models/report.rb
parent5533fa28b6cb6ca71775b716a515c1745f76bf02 (diff)
Add `category` and `rule_ids` params to `POST /api/v1/reports` (#17492)
Diffstat (limited to 'app/models/report.rb')
-rw-r--r--app/models/report.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/report.rb b/app/models/report.rb
index ceb15133b..3dd8a6fdd 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -39,6 +39,9 @@ class Report < ApplicationRecord
   scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with({ user: [:invite_request, :invite] })) }
 
   validates :comment, length: { maximum: 1_000 }
+  validates :rule_ids, absence: true, unless: :violation?
+
+  validate :validate_rule_ids
 
   enum category: {
     other: 0,
@@ -122,4 +125,10 @@ class Report < ApplicationRecord
   def set_uri
     self.uri = ActivityPub::TagManager.instance.generate_uri_for(self) if uri.nil? && account.local?
   end
+
+  def validate_rule_ids
+    return unless violation?
+
+    errors.add(:rule_ids, I18n.t('reports.errors.invalid_rules')) unless rules.size == rule_ids.size
+  end
 end