class RubyEventStore::Browser::JsonApiEvent

Attributes

event[R]
parent_event_id[R]

Public Class Methods

new(event, parent_event_id) click to toggle source
# File lib/ruby_event_store/browser/json_api_event.rb, line 6
def initialize(event, parent_event_id)
  @event = event
  @parent_event_id = parent_event_id
end

Public Instance Methods

to_h() click to toggle source
# File lib/ruby_event_store/browser/json_api_event.rb, line 11
def to_h
  {
    id: event.event_id,
    type: "events",
    attributes: {
      event_type: event.event_type,
      data: event.data,
      metadata: metadata,
      correlation_stream_name: correlation_stream_name,
      causation_stream_name: causation_stream_name,
      type_stream_name: type_stream_name,
      parent_event_id: parent_event_id,
    },
  }
end

Private Instance Methods

causation_stream_name() click to toggle source
# File lib/ruby_event_store/browser/json_api_event.rb, line 41
def causation_stream_name
  "$by_causation_id_#{event.event_id}"
end
correlation_stream_name() click to toggle source
# File lib/ruby_event_store/browser/json_api_event.rb, line 37
def correlation_stream_name
  "$by_correlation_id_#{metadata.fetch(:correlation_id)}" if metadata.has_key?(:correlation_id)
end
metadata() click to toggle source
# File lib/ruby_event_store/browser/json_api_event.rb, line 30
def metadata
  event.metadata.to_h.tap do |m|
    m[:timestamp] = event.metadata.fetch(:timestamp).iso8601(TIMESTAMP_PRECISION)
    m[:valid_at]  = event.metadata.fetch(:valid_at).iso8601(TIMESTAMP_PRECISION)
  end
end
type_stream_name() click to toggle source
# File lib/ruby_event_store/browser/json_api_event.rb, line 45
def type_stream_name
  "$by_type_#{event.event_type}"
end