Sha256: 2db14821eba73fc788cb84614914ad918f3716d229bd884d17b9dc80625f6ffd

Contents?: true

Size: 1.21 KB

Versions: 39

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Decidim
  module Elections
    # This class serializes an Answer so it can be exported to CSV, JSON or other
    # formats.
    class AnswerSerializer < Decidim::Exporters::Serializer
      include Decidim::ApplicationHelper
      include Decidim::ResourceHelper
      include Decidim::TranslationsHelper

      # Public: Initializes the serializer with an answer.
      def initialize(answer)
        @answer = answer
      end

      # Public: Exports a hash with the serialized data for this answer.
      def serialize
        {
          participatory_space: {
            id: election.participatory_space.id,
            title: election.participatory_space.title
          },
          id: answer.id,
          election_id: election.id,
          election_title: election.title,
          question_id: question.id,
          question_title: question.title,
          answer_id: answer.id,
          answer_title: answer.title,
          answer_votes: answer.results_total
        }
      end

      private

      attr_reader :answer
      alias resource answer

      def election
        answer.question.election
      end

      def question
        answer.question
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
decidim-elections-0.28.5 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.4 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.9 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.3 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.8 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.2 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.7 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.1 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.6 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.26.10 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.26.9 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.0 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.5 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.0.rc5 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.28.0.rc4 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.26.8 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.4 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.27.3 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.26.7 lib/decidim/elections/answer_serializer.rb
decidim-elections-0.26.5 lib/decidim/elections/answer_serializer.rb