Class: HttpEventstore::Api::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/http_eventstore/api/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(endpoint, port, page_size) ⇒ Client

Returns a new instance of Client.



5
6
7
8
# File 'lib/http_eventstore/api/client.rb', line 5

def initialize(endpoint, port, page_size)
  @endpoint = Endpoint.new(endpoint, port)
  @page_size = page_size
end

Instance Attribute Details

#endpointObject (readonly)

Returns the value of attribute endpoint.



9
10
11
# File 'lib/http_eventstore/api/client.rb', line 9

def endpoint
  @endpoint
end

#page_sizeObject (readonly)

Returns the value of attribute page_size.



9
10
11
# File 'lib/http_eventstore/api/client.rb', line 9

def page_size
  @page_size
end

Instance Method Details

#append_to_stream(stream_name, event, expected_version = nil) ⇒ Object



11
12
13
14
# File 'lib/http_eventstore/api/client.rb', line 11

def append_to_stream(stream_name, event, expected_version = nil)
  headers = {"ES-EventType" => event.type, "ES-EventId" => event.event_id, "ES-ExpectedVersion" => "#{expected_version}"}.reject { |key, val| val.empty? }
  make_request(:post, "/streams/#{stream_name}", event.data, headers)
end

#delete_stream(stream_name, hard_delete) ⇒ Object



16
17
18
19
# File 'lib/http_eventstore/api/client.rb', line 16

def delete_stream(stream_name, hard_delete)
  headers = {"ES-HardDelete" => "#{hard_delete}"}
  make_request(:delete, "/streams/#{stream_name}", {}, headers)
end

#read_stream_backward(stream_name, start, count) ⇒ Object



21
22
23
# File 'lib/http_eventstore/api/client.rb', line 21

def read_stream_backward(stream_name, start, count)
  make_request(:get, "/streams/#{stream_name}/#{start}/backward/#{count}")
end

#read_stream_forward(stream_name, start, count, long_pool = 0) ⇒ Object



25
26
27
28
# File 'lib/http_eventstore/api/client.rb', line 25

def read_stream_forward(stream_name, start, count, long_pool = 0)
  headers = long_pool > 0 ? {"ES-LongPoll" => "#{long_pool}"} : {}
  make_request(:get, "/streams/#{stream_name}/#{start}/forward/#{count}", {}, headers)
end

#read_stream_page(uri) ⇒ Object



30
31
32
# File 'lib/http_eventstore/api/client.rb', line 30

def read_stream_page(uri)
  make_request(:get, uri)
end