0
0
Fork 0

Rename :poll to :preloadable_poll and :owned_poll to :poll on Status (#10401)

Also, fix some n+1 queries

Resolve #10365
This commit is contained in:
Eugen Rochko 2019-03-28 04:44:59 +01:00 committed by GitHub
parent f46f67d984
commit f1bc90ab50
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 45 additions and 43 deletions

View file

@ -68,7 +68,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
thread: replied_to_status,
conversation: conversation_from_uri(@object['conversation']),
media_attachment_ids: process_attachments.take(4).map(&:id),
owned_poll: process_poll,
poll: process_poll,
}
end
end
@ -240,11 +240,11 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def poll_vote?
return false if replied_to_status.nil? || replied_to_status.poll.nil? || !replied_to_status.local? || !replied_to_status.poll.options.include?(@object['name'])
return false if replied_to_status.nil? || replied_to_status.preloadable_poll.nil? || !replied_to_status.local? || !replied_to_status.preloadable_poll.options.include?(@object['name'])
unless replied_to_status.poll.expired?
replied_to_status.poll.votes.create!(account: @account, choice: replied_to_status.poll.options.index(@object['name']), uri: @object['id'])
ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, replied_to_status.id) unless replied_to_status.poll.hide_totals?
unless replied_to_status.preloadable_poll.expired?
replied_to_status.preloadable_poll.votes.create!(account: @account, choice: replied_to_status.preloadable_poll.options.index(@object['name']), uri: @object['id'])
ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, replied_to_status.id) unless replied_to_status.preloadable_poll.hide_totals?
end
true

View file

@ -23,8 +23,8 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
return reject_payload! if invalid_origin?(@object['id'])
status = Status.find_by(uri: object_uri, account_id: @account.id)
return if status.nil? || status.poll.nil?
return if status.nil? || status.preloadable_poll.nil?
ActivityPub::ProcessPollService.new.call(status.poll, @object)
ActivityPub::ProcessPollService.new.call(status.preloadable_poll, @object)
end
end