about summary refs log blame commit diff
path: root/app/serializers/rest/notification_serializer.rb
blob: 137fc53ddab2301088bbfca6b2d78f88cefabc49 (plain) (tree)
1
2
3
4
5
6
7
8
9




                                                                              
                                                                                                
                                                                           
 


                  
                  
                                                                                  
     


                                  
   
# frozen_string_literal: true

class REST::NotificationSerializer < ActiveModel::Serializer
  attributes :id, :type, :created_at

  belongs_to :from_account, key: :account, serializer: REST::AccountSerializer
  belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
  belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer

  def id
    object.id.to_s
  end

  def status_type?
    [:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type)
  end

  def report_type?
    object.type == :'admin.report'
  end
end