about summary refs log blame commit diff
path: root/app/serializers/rest/admin/account_serializer.rb
blob: 3480e8c5a1cd8b8a16e3982f9ed6185d15e796f2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11









                                                                    
                                                      








                                                       

















































                                                          






                    
   
# frozen_string_literal: true

class REST::Admin::AccountSerializer < ActiveModel::Serializer
  attributes :id, :username, :domain, :created_at,
             :email, :ip, :role, :confirmed, :suspended,
             :silenced, :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

  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 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
  end
end