Class: CleanupVotesJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/cleanup_votes_job.rb

Instance Method Summary collapse

Instance Method Details

#performObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/jobs/cleanup_votes_job.rb', line 4

def perform
  Community.all.each do |c|
    RequestContext.community = c
    orphan_votes = Vote.all.reject { |v| v.post.present? }

    puts "[#{c.name}] destroying #{orphan_votes.length} #{'orphan vote'.pluralize(orphan_votes.length)}"

    system_user = User.find(-1)

    orphan_votes.each do |v|
      result = v.destroy

      if result
        AuditLog.admin_audit(
          comment: "Deleted orphaned vote for user ##{v.recv_user_id} " \
                   "on post ##{v.post_id} " \
                   "in community ##{c.id} (#{c.name})",
          event_type: 'vote_delete',
          related: v,
          user: system_user
        )
      else
        puts "[#{c.name}] failed to destroy vote \"#{v.id}\""
        v.errors.each { |e| puts e.full_message }
      end
    end
  end
end