Sha256: b8add978c4181641854103d3af1fb430d2f7d2e2d8efb545081347d370acdf1e

Contents?: true

Size: 1.11 KB

Versions: 20

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module Decidim
  module Meetings
    class RegistrationSerializer < Decidim::Exporters::Serializer
      include Decidim::TranslationsHelper
      # Serializes a registration
      def serialize
        {
          id: resource.id,
          code: resource.code,
          user: {
            name: resource.user.name,
            email: resource.user.email,
            user_group: resource.user_group&.name || ""
          },
          registration_form_answers: serialize_answers
        }
      end

      private

      def serialize_answers
        questions = resource.meeting.questionnaire.questions
        answers = resource.meeting.questionnaire.answers.where(user: resource.user)
        questions.each_with_index.inject({}) do |serialized, (question, idx)|
          answer = answers.find_by(question: question)
          serialized.update("#{idx + 1}. #{translated_attribute(question.body)}" => normalize_body(answer))
        end
      end

      def normalize_body(answer)
        return "" unless answer

        answer.body || answer.choices.pluck(:body)
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
decidim-meetings-0.24.3 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.6 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.24.2 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.5 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.24.1 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.24.0 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.24.0.rc2 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.4 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.24.0.rc1 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.3 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.2 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.1 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.1.rc1 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.23.0 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.22.0 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.21.0 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.20.1 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.20.0 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.19.1 app/serializers/decidim/meetings/registration_serializer.rb
decidim-meetings-0.19.0 app/serializers/decidim/meetings/registration_serializer.rb