instante-social/app/serializers/rest/poll_serializer.rb

37 lines
712 B
Ruby

# frozen_string_literal: true
class REST::PollSerializer < ActiveModel::Serializer
attributes :id, :expires_at, :expired,
:multiple, :votes_count, :voters_count
has_many :loaded_options, key: :options
has_many :emojis, serializer: REST::CustomEmojiSerializer
attribute :voted, if: :current_user?
attribute :own_votes, if: :current_user?
def id
object.id.to_s
end
def expired
object.expired?
end
def voted
object.voted?(current_user.account)
end
def own_votes
object.own_votes(current_user.account)
end
def current_user?
!current_user.nil?
end
class OptionSerializer < ActiveModel::Serializer
attributes :title, :votes_count
end
end