Browse Source

Fix wrong param name in scheduled statuses and return params in API (#9725)

The database column and API param are called in_reply_to_id, not
in_reply_to_status_id, so it makes no sense to encode it that way
Eugen Rochko 5 years ago
parent
commit
1cbdf8d218

+ 5 - 1
app/serializers/rest/scheduled_status_serializer.rb

@@ -1,11 +1,15 @@
 # frozen_string_literal: true
 
 class REST::ScheduledStatusSerializer < ActiveModel::Serializer
-  attributes :id, :scheduled_at
+  attributes :id, :scheduled_at, :params
 
   has_many :media_attachments, serializer: REST::MediaAttachmentSerializer
 
   def id
     object.id.to_s
   end
+
+  def params
+    object.params.without(:application_id)
+  end
 end

+ 4 - 4
app/services/post_status_service.rb

@@ -167,10 +167,10 @@ class PostStatusService < BaseService
 
   def scheduled_options
     @options.tap do |options_hash|
-      options_hash[:in_reply_to_status_id] = options_hash.delete(:thread)&.id
-      options_hash[:application_id]        = options_hash.delete(:application)&.id
-      options_hash[:scheduled_at]          = nil
-      options_hash[:idempotency]           = nil
+      options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id
+      options_hash[:application_id] = options_hash.delete(:application)&.id
+      options_hash[:scheduled_at]   = nil
+      options_hash[:idempotency]    = nil
     end
   end
 end

+ 1 - 1
app/workers/publish_scheduled_status_worker.rb

@@ -18,7 +18,7 @@ class PublishScheduledStatusWorker
   def options_with_objects(options)
     options.tap do |options_hash|
       options_hash[:application] = Doorkeeper::Application.find(options_hash.delete(:application_id)) if options[:application_id]
-      options_hash[:thread]      = Status.find(options_hash.delete(:in_reply_to_status_id)) if options_hash[:in_reply_to_status_id]
+      options_hash[:thread]      = Status.find(options_hash.delete(:in_reply_to_id)) if options_hash[:in_reply_to_id]
     end
   end
 end