2019-03-03 13:18:23 -08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class REST::PollSerializer < ActiveModel::Serializer
|
2024-04-02 03:03:33 -07:00
|
|
|
# Please update `app/javascript/mastodon/api_types/polls.ts` when making changes to the attributes
|
|
|
|
|
2019-03-03 13:18:23 -08:00
|
|
|
attributes :id, :expires_at, :expired,
|
2019-09-29 13:58:01 -07:00
|
|
|
:multiple, :votes_count, :voters_count
|
2019-03-03 13:18:23 -08:00
|
|
|
|
2019-03-07 13:53:47 -08:00
|
|
|
has_many :loaded_options, key: :options
|
2019-03-20 09:29:12 -07:00
|
|
|
has_many :emojis, serializer: REST::CustomEmojiSerializer
|
2019-03-03 13:18:23 -08:00
|
|
|
|
|
|
|
attribute :voted, if: :current_user?
|
2019-09-22 05:15:18 -07:00
|
|
|
attribute :own_votes, if: :current_user?
|
2019-03-03 13:18:23 -08:00
|
|
|
|
|
|
|
def id
|
|
|
|
object.id.to_s
|
|
|
|
end
|
|
|
|
|
|
|
|
def expired
|
|
|
|
object.expired?
|
|
|
|
end
|
|
|
|
|
|
|
|
def voted
|
2019-03-07 13:53:47 -08:00
|
|
|
object.voted?(current_user.account)
|
2019-03-03 13:18:23 -08:00
|
|
|
end
|
|
|
|
|
2019-09-22 05:15:18 -07:00
|
|
|
def own_votes
|
|
|
|
object.own_votes(current_user.account)
|
|
|
|
end
|
|
|
|
|
2019-03-03 13:18:23 -08:00
|
|
|
def current_user?
|
|
|
|
!current_user.nil?
|
|
|
|
end
|
|
|
|
|
|
|
|
class OptionSerializer < ActiveModel::Serializer
|
|
|
|
attributes :title, :votes_count
|
|
|
|
end
|
|
|
|
end
|