about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-03-04 00:39:06 +0100
committerEugen Rochko <eugen@zeonfederated.com>2019-03-04 00:39:06 +0100
commite13d3792f322c6313fde10d639b13bc31723ec63 (patch)
treef78d71564fd4f2cd83dfb40ccf6f0fcd6254f39e
parent5dfa4336985616cf5652de2f1cf794d8f740424e (diff)
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
-rw-r--r--app/models/status.rb4
-rw-r--r--app/services/activitypub/fetch_remote_poll_service.rb2
-rw-r--r--app/services/resolve_url_service.rb2
3 files changed, 4 insertions, 4 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index db3c130de..74deeeb50 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -255,7 +255,7 @@ class Status < ApplicationRecord
   before_validation :set_conversation
   before_validation :set_local
 
-  before_save :set_poll_id
+  after_create :set_poll_id
 
   class << self
     def selectable_visibilities
@@ -446,7 +446,7 @@ class Status < ApplicationRecord
   end
 
   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
 
   def set_visibility
diff --git a/app/services/activitypub/fetch_remote_poll_service.rb b/app/services/activitypub/fetch_remote_poll_service.rb
index 6f0ac5624..ea75e8ef9 100644
--- a/app/services/activitypub/fetch_remote_poll_service.rb
+++ b/app/services/activitypub/fetch_remote_poll_service.rb
@@ -46,6 +46,6 @@ class ActivityPub::FetchRemotePollService < BaseService
   end
 
   def expected_type?
-    equals_or_includes_any?(@json['type'], 'Question')
+    equals_or_includes_any?(@json['type'], %w(Question))
   end
 end
diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb
index ed0c56923..b98759bf6 100644
--- a/app/services/resolve_url_service.rb
+++ b/app/services/resolve_url_service.rb
@@ -20,7 +20,7 @@ class ResolveURLService < BaseService
   def process_url
     if equals_or_includes_any?(type, %w(Application Group Organization Person Service))
       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)
     end
   end