class Akasha::Storage::HttpEventStore::EventSerializer

Serializes and deserializes events to and from the format required by the HTTP Eventstore API

Public Instance Methods

deserialize(es_events) click to toggle source
# File lib/akasha/storage/http_event_store/event_serializer.rb, line 23
def deserialize(es_events)
  es_events.map do |ev|
    metadata = ev['metaData']&.symbolize_keys || {}
    data = ev['data']&.symbolize_keys || {}
    revision = ev['eventNumber']
    updated_at = Time.iso8601(ev['updated']) if ev.key?('updated')
    event = Akasha::RecordedEvent.new(ev['eventType'].to_sym, ev['eventId'], revision, updated_at,
                                      metadata, **data)
    event
  end
end
serialize(events) click to toggle source
# File lib/akasha/storage/http_event_store/event_serializer.rb, line 11
def serialize(events)
  events.map do |event|
    base = {
      'eventType' => event.name,
      'data' => event.data,
      'metaData' => event.metadata
    }
    base['eventId'] = event.id unless event.id.nil?
    base
  end
end