Sha256: 5ae644a11ddd5f3162b77f5d5202c87e185c0d7e051f69192fe3c3929f86d09d

Contents?: true

Size: 1.12 KB

Versions: 19

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Decidim
  # This class serializes a Message so can be exported to CSV
  module DataPortabilitySerializers
    class DataPortabilityConversationSerializer < Decidim::Exporters::Serializer
      include Decidim::ResourceHelper

      # Public: Initializes the serializer with a conversation.
      def initialize(conversation)
        @conversation = conversation
      end

      # Public: Exports a hash with the serialized data for this conversation.
      def serialize
        {
          id: conversation.id,
          messages: messages,
          created_at: conversation.created_at,
          updated_at: conversation.updated_at
        }
      end

      private

      attr_reader :conversation
      alias resource conversation

      def messages
        conversation.messages.map do |message|
          {
            message_id: message.id,
            sender_id: message.sender.id,
            sender_name: message.sender.name,
            body: message.body,
            created_at: message.created_at,
            updated_at: message.updated_at
          }
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
decidim-core-0.26.10 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.9 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.8 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.7 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.5 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.4 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.3 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.2 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.1 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.0 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.0.rc2 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.26.0.rc1 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.2 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.1 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.0 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.0.rc4 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.0.rc3 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.0.rc2 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb
decidim-core-0.25.0.rc1 lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb