Fix REST API serializer for Account not including `moved` when the moved account has itself moved (#22483)

Instead of cutting immediately, cut after one recursion.
This commit is contained in:
Claire 2023-01-18 16:25:31 +01:00 committed by GitHub
parent d4f590d6bb
commit 0405be69d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 2 deletions

View File

@ -16,6 +16,16 @@ class REST::AccountSerializer < ActiveModel::Serializer
attribute :silenced, key: :limited, if: :silenced? attribute :silenced, key: :limited, if: :silenced?
attribute :noindex, if: :local? attribute :noindex, if: :local?
class AccountDecorator < SimpleDelegator
def self.model_name
Account.model_name
end
def moved?
false
end
end
class FieldSerializer < ActiveModel::Serializer class FieldSerializer < ActiveModel::Serializer
include FormattingHelper include FormattingHelper
@ -85,7 +95,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
end end
def moved_to_account def moved_to_account
object.suspended? ? nil : object.moved_to_account object.suspended? ? nil : AccountDecorator.new(object.moved_to_account)
end end
def emojis def emojis
@ -111,6 +121,6 @@ class REST::AccountSerializer < ActiveModel::Serializer
delegate :suspended?, :silenced?, :local?, to: :object delegate :suspended?, :silenced?, :local?, to: :object
def moved_and_not_nested? def moved_and_not_nested?
object.moved? && object.moved_to_account.moved_to_account_id.nil? object.moved?
end end
end end