You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
712 B
36 lines
712 B
# 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
|
|
|