Class: EventStoreClient::StoreAdapter::Api::Client
- Inherits:
-
Object
- Object
- EventStoreClient::StoreAdapter::Api::Client
- Defined in:
- lib/event_store_client/store_adapter/api/client.rb
Instance Method Summary collapse
- #ack(url) ⇒ Object
- #append_to_stream(stream_name, events, expected_version: nil) ⇒ Object
- #consume_feed(stream_name, subscription_name, start: 0, count: 1, long_pool: 0) ⇒ Object
- #delete_stream(stream_name, hard_delete) ⇒ Object
- #read(stream_name, direction: 'forward', start: 0, count: per_page) ⇒ Object
- #subscribe_to_stream(stream_name, subscription_name, stats: true, start_from: 0, retries: 5) ⇒ Object
Instance Method Details
#ack(url) ⇒ Object
68 69 70 |
# File 'lib/event_store_client/store_adapter/api/client.rb', line 68 def ack(url) make_request(:post, url) end |
#append_to_stream(stream_name, events, expected_version: nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/event_store_client/store_adapter/api/client.rb', line 7 def append_to_stream(stream_name, events, expected_version: nil) headers = { 'ES-ExpectedVersion' => expected_version.to_s }.reject { |_key, val| val.empty? } data = [events].flatten.map do |event| { eventId: event.id, eventType: event.type, data: event.data, metadata: event. } end make_request(:post, "/streams/#{stream_name}", body: data, headers: headers) end |
#consume_feed(stream_name, subscription_name, start: 0, count: 1, long_pool: 0) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/event_store_client/store_adapter/api/client.rb', line 51 def consume_feed( stream_name, subscription_name, start: 0, count: 1, long_pool: 0 ) headers = long_pool > 0 ? { "ES-LongPoll" => "#{long_pool}" } : {} headers['Content-Type'] = 'application/vnd.eventstore.competingatom+json' headers['Accept'] = 'application/vnd.eventstore.competingatom+json' make_request( :get, "/subscriptions/#{stream_name}/#{subscription_name}/#{count}", headers: headers ) end |
#delete_stream(stream_name, hard_delete) ⇒ Object
24 25 26 27 |
# File 'lib/event_store_client/store_adapter/api/client.rb', line 24 def delete_stream(stream_name, hard_delete) headers = JSON_HEADERS.merge('ES-HardDelete' => hard_delete.to_s) make_request(:delete, "/streams/#{stream_name}", {}, headers) end |
#read(stream_name, direction: 'forward', start: 0, count: per_page) ⇒ Object
29 30 31 |
# File 'lib/event_store_client/store_adapter/api/client.rb', line 29 def read(stream_name, direction: 'forward', start: 0, count: per_page) make_request(:get, "/streams/#{stream_name}/#{start}/#{direction}/#{count}") end |
#subscribe_to_stream(stream_name, subscription_name, stats: true, start_from: 0, retries: 5) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/event_store_client/store_adapter/api/client.rb', line 33 def subscribe_to_stream( stream_name, subscription_name, stats: true, start_from: 0, retries: 5 ) make_request( :put, "/subscriptions/#{stream_name}/#{subscription_name}", body: { extraStatistics: stats, startFrom: start_from, maxRetryCount: retries, resolveLinkTos: true }, headers: { "Content-Type" => "application/json" } ) end |