23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/message_store/event_store/put.rb', line 23
def call(messages, stream_name, expected_version: nil)
messages = Array(messages)
expected_version = ExpectedVersion.canonize(expected_version)
logger.trace { "Putting message data (Stream Name: #{stream_name}, Batch Size: #{messages.count}, Types: #{messages.map(&:type).inspect}, Expected Version: #{expected_version.inspect})" }
messages.each do |message_data|
message_data.metadata = nil if message_data.metadata&.empty?
end
begin
location = write.(
messages,
stream_name,
expected_version: expected_version
)
rescue ::EventStore::HTTP::Write::ExpectedVersionError => error
raise ExpectedVersion::Error, error.message
end
*, position = location.path.split '/'
logger.debug { "Put message data done (Stream Name: #{stream_name}, Batch Size: #{messages.count}, Types: #{messages.map(&:type).inspect}, Position: #{position}, Expected Version: #{expected_version.inspect})" }
position.to_i
end
|