Class: Decidim::HideChildResourcesJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/decidim/hide_child_resources_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(resource, user_id) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/jobs/decidim/hide_child_resources_job.rb', line 7

def perform(resource, user_id)
  spam_user = (resource.organization.users.find_by(email: Decidim::Ai::SpamDetection.reporting_user_email) if Decidim.module_installed?(:ai))
  spam_user = resource.organization.admins.find(user_id) if spam_user.nil?

  tool = Decidim::ModerationTools.new(resource, spam_user)

  unless Decidim::Report.exists?("decidim_moderation_id" => tool.moderation.id, "decidim_user_id" => spam_user.id)
    tool.create_report!({
                          reason: "parent_hidden",
                          details: I18n.t("report_details", scope: "decidim.reports.parent_hidden")
                        })
  end

  tool.update_report_count!
  tool.hide!
end