class Decidim::DataPortabilitySerializers::DataPortabilityConversationSerializer

Attributes

conversation[R]

Public Class Methods

new(conversation) click to toggle source

Public: Initializes the serializer with a conversation.

# File lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb, line 10
def initialize(conversation)
  @conversation = conversation
end

Public Instance Methods

serialize() click to toggle source

Public: Exports a hash with the serialized data for this conversation.

# File lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb, line 15
def serialize
  {
    id: conversation.id,
    messages: messages,
    created_at: conversation.created_at,
    updated_at: conversation.updated_at
  }
end

Private Instance Methods

messages() click to toggle source
# File lib/decidim/data_portability_serializers/data_portability_conversation_serializer.rb, line 28
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