diaspora/app/presenters/poll_presenter.rb
2020-02-02 18:40:07 +01:00

35 lines
901 B
Ruby

# frozen_string_literal: true
class PollPresenter < BasePresenter
def initialize(poll, current_user=nil)
super(poll, current_user)
@participation = participation_answer(current_user) if current_user
end
def as_api_json
{
guid: guid,
participation_count: participation_count,
question: question,
already_participated: @participation.present?,
poll_answers: answers_collection_as_api_json(poll_answers)
}
end
private
def answers_collection_as_api_json(answers_collection)
answers_collection.map {|answer| answer_as_api_json(answer) }
end
def answer_as_api_json(answer)
base = {
id: answer.id,
answer: answer.answer,
vote_count: answer.vote_count
}
base[:own_answer] = @participation.try(:poll_answer_id) == answer.id if current_user
base
end
end