1
0
mirror of https://github.com/mastodon/mastodon synced 2024-12-15 15:18:14 +09:00
mastodon/app/serializers/rest/admin/account_serializer.rb

88 lines
1.5 KiB
Ruby

# frozen_string_literal: true
class REST::Admin::AccountSerializer < ActiveModel::Serializer
attributes :id, :username, :domain, :created_at,
:email, :ip, :confirmed, :suspended,
:silenced, :sensitized, :disabled, :approved, :locale,
:invite_request
attribute :created_by_application_id, if: :created_by_application?
attribute :invited_by_account_id, if: :invited?
has_many :ips, serializer: REST::Admin::IpSerializer
has_one :account, serializer: REST::AccountSerializer
has_one :role, serializer: REST::RoleSerializer
def id
object.id.to_s
end
def email
object.user_email
end
def role
object.user_role
end
def suspended
object.suspended?
end
def silenced
object.silenced?
end
def sensitized
object.sensitized?
end
def confirmed
object.user_confirmed?
end
def disabled
object.user_disabled?
end
def approved
object.user_approved?
end
def account
object
end
def locale
object.user_locale
end
def created_by_application_id
object.user&.created_by_application_id&.to_s&.presence
end
def invite_request
object.user&.invite_request&.text
end
def invited_by_account_id
object.user&.invite&.user&.account_id&.to_s&.presence
end
def invited?
object.user&.invited?
end
def created_by_application?
object.user&.created_by_application_id&.present?
end
def ips
object.user&.ips
end
def ip
ips&.first&.ip
end
end