Sha256: 0bf9a2bd1d29022ffe1130ce6ed4eebe71917150464fa146fad8441206872b1f
Contents?: true
Size: 1.05 KB
Versions: 5
Compression:
Stored size: 1.05 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 }, 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
5 entries across 5 versions & 1 rubygems