38 lines
		
	
	
	
		
			798 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			798 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| class REST::TranslationSerializer < ActiveModel::Serializer
 | |
|   attributes :detected_source_language, :language, :provider, :spoiler_text, :content
 | |
| 
 | |
|   class PollSerializer < ActiveModel::Serializer
 | |
|     attribute :id
 | |
|     has_many :options
 | |
| 
 | |
|     def id
 | |
|       object.status.preloadable_poll.id.to_s
 | |
|     end
 | |
| 
 | |
|     def options
 | |
|       object.poll_options
 | |
|     end
 | |
| 
 | |
|     class OptionSerializer < ActiveModel::Serializer
 | |
|       attributes :title
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   has_one :poll, serializer: PollSerializer
 | |
| 
 | |
|   class MediaAttachmentSerializer < ActiveModel::Serializer
 | |
|     attributes :id, :description
 | |
| 
 | |
|     def id
 | |
|       object.id.to_s
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   has_many :media_attachments, serializer: MediaAttachmentSerializer
 | |
| 
 | |
|   def poll
 | |
|     object if object.status.preloadable_poll
 | |
|   end
 | |
| end
 |