26 lines
		
	
	
		
			675 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			675 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class REST::BaseQuoteSerializer < ActiveModel::Serializer
 | 
						|
  attributes :state
 | 
						|
 | 
						|
  def state
 | 
						|
    return object.state unless object.accepted?
 | 
						|
 | 
						|
    # Extra states when a status is unavailable
 | 
						|
    return 'deleted' if object.quoted_status.nil?
 | 
						|
    return 'unauthorized' if status_filter.filtered?
 | 
						|
 | 
						|
    object.state
 | 
						|
  end
 | 
						|
 | 
						|
  def quoted_status
 | 
						|
    object.quoted_status if object.accepted? && object.quoted_status.present? && !status_filter.filtered?
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def status_filter
 | 
						|
    @status_filter ||= StatusFilter.new(object.quoted_status, current_user&.account, instance_options[:relationships]&.preloaded_account_relations || {})
 | 
						|
  end
 | 
						|
end
 |