Method: EventSource::Postgres::Put#call

Defined in:
lib/event_source/postgres/put.rb

#call(write_event, stream_name, expected_version: nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/event_source/postgres/put.rb', line 31

def call(write_event, stream_name, expected_version: nil)
  logger.trace { "Putting event data (Stream Name: #{stream_name}, Type: #{write_event.type}, Expected Version: #{expected_version.inspect})" }
  logger.trace(tags: [:data, :event_data]) { write_event.pretty_inspect }

  write_event.id ||= identifier.get

  id, type, data,  = destructure_event(write_event)
  expected_version = ExpectedVersion.canonize(expected_version)

  insert_event(id, stream_name, type, data, , expected_version).tap do |position|
    logger.info { "Put event data (Position: #{position}, Stream Name: #{stream_name}, Type: #{write_event.type}, Expected Version: #{expected_version.inspect}, ID: #{id.inspect})" }
    logger.info(tags: [:data, :event_data]) { write_event.pretty_inspect }
  end
end