39 lines
		
	
	
	
		
			702 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			702 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| 
								 | 
							
								# frozen_string_literal: true
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class REST::PollSerializer < ActiveModel::Serializer
							 | 
						||
| 
								 | 
							
								  attributes :id, :expires_at, :expired,
							 | 
						||
| 
								 | 
							
								             :multiple, :votes_count
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  has_many :dynamic_options, key: :options
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  attribute :voted, if: :current_user?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def id
							 | 
						||
| 
								 | 
							
								    object.id.to_s
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def dynamic_options
							 | 
						||
| 
								 | 
							
								    if !object.expired? && object.hide_totals?
							 | 
						||
| 
								 | 
							
								      object.unloaded_options
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      object.loaded_options
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def expired
							 | 
						||
| 
								 | 
							
								    object.expired?
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def voted
							 | 
						||
| 
								 | 
							
								    object.votes.where(account: current_user.account).exists?
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def current_user?
							 | 
						||
| 
								 | 
							
								    !current_user.nil?
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  class OptionSerializer < ActiveModel::Serializer
							 | 
						||
| 
								 | 
							
								    attributes :title, :votes_count
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |