You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
602 B
24 lines
602 B
# frozen_string_literal: true |
|
|
|
class PollExpirationNotifyWorker |
|
include Sidekiq::Worker |
|
|
|
sidekiq_options unique: :until_executed |
|
|
|
def perform(poll_id) |
|
poll = Poll.find(poll_id) |
|
|
|
# Notify poll owner and remote voters |
|
if poll.local? |
|
ActivityPub::DistributePollUpdateWorker.perform_async(poll.status.id) |
|
NotifyService.new.call(poll.account, poll) |
|
end |
|
|
|
# Notify local voters |
|
poll.votes.includes(:account).map(&:account).select(&:local?).each do |account| |
|
NotifyService.new.call(account, poll) |
|
end |
|
rescue ActiveRecord::RecordNotFound |
|
true |
|
end |
|
end
|
|
|