|
|
|
@ -32,12 +32,17 @@ class ActivityPub::FetchRemotePollService < BaseService |
|
|
|
|
# votes, so we need to remove them |
|
|
|
|
poll.votes.delete_all if latest_options != poll.options |
|
|
|
|
|
|
|
|
|
poll.update!( |
|
|
|
|
last_fetched_at: Time.now.utc, |
|
|
|
|
expires_at: expires_at, |
|
|
|
|
options: latest_options, |
|
|
|
|
cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 } |
|
|
|
|
) |
|
|
|
|
begin |
|
|
|
|
poll.update!( |
|
|
|
|
last_fetched_at: Time.now.utc, |
|
|
|
|
expires_at: expires_at, |
|
|
|
|
options: latest_options, |
|
|
|
|
cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 } |
|
|
|
|
) |
|
|
|
|
rescue ActiveRecord::StaleObjectError |
|
|
|
|
poll.reload |
|
|
|
|
retry |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
private |
|
|
|
|