Make sure the poll is created before storing its id (#10142)

* Make sure the poll is created before storing its id

* Fix updating poll results

* Support fetching Question activities from the search bar
lolsob-rspec
ThibG 2019-03-04 00:39:06 +01:00 committed by Eugen Rochko
parent 21246d861e
commit 7d0dc066a7
3 changed files with 4 additions and 4 deletions

View File

@ -255,7 +255,7 @@ class Status < ApplicationRecord
before_validation :set_conversation before_validation :set_conversation
before_validation :set_local before_validation :set_local
before_save :set_poll_id after_create :set_poll_id
class << self class << self
def selectable_visibilities def selectable_visibilities
@ -446,7 +446,7 @@ class Status < ApplicationRecord
end end
def set_poll_id def set_poll_id
self.poll_id = owned_poll.id unless owned_poll.nil? update_column(:poll_id, owned_poll.id) unless owned_poll.nil?
end end
def set_visibility def set_visibility

View File

@ -46,6 +46,6 @@ class ActivityPub::FetchRemotePollService < BaseService
end end
def expected_type? def expected_type?
equals_or_includes_any?(@json['type'], 'Question') equals_or_includes_any?(@json['type'], %w(Question))
end end
end end

View File

@ -20,7 +20,7 @@ class ResolveURLService < BaseService
def process_url def process_url
if equals_or_includes_any?(type, %w(Application Group Organization Person Service)) if equals_or_includes_any?(type, %w(Application Group Organization Person Service))
FetchRemoteAccountService.new.call(atom_url, body, protocol) FetchRemoteAccountService.new.call(atom_url, body, protocol)
elsif equals_or_includes_any?(type, %w(Note Article Image Video Page)) elsif equals_or_includes_any?(type, %w(Note Article Image Video Page Question))
FetchRemoteStatusService.new.call(atom_url, body, protocol) FetchRemoteStatusService.new.call(atom_url, body, protocol)
end end
end end