class EventStoreClient::GRPC::Commands::Streams::LinkTo
Public Instance Methods
call(stream_name, events, options: {})
click to toggle source
# File lib/event_store_client/adapters/grpc/commands/streams/link_to.rb, line 20 def call(stream_name, events, options: {}) events.each_with_index do |event, index| custom_metadata = JSON.generate( "type": '$>', "created_at": Time.now, "encryption": event.metadata['encryption'] || '' ) event_metadata = event.metadata.tap do |h| h['type'] = '$>' h['content-type'] = 'application/json' h.delete('encryption') end event_id = event.id event_id = SecureRandom.uuid if event.id.nil? || event.id.empty? payload = [ request.new( options: { stream_identifier: { streamName: stream_name }, any: {} } ), request.new( proposed_message: { id: { string: event_id }, data: event.title, custom_metadata: custom_metadata, metadata: event_metadata } ) ] service.append(payload, metadata: metadata) end Success() end