Class: Hivehook::Resources::StreamConsumerService
- Inherits:
-
BaseService
- Object
- BaseService
- Hivehook::Resources::StreamConsumerService
- Defined in:
- lib/hivehook/resources/stream_consumer_service.rb
Constant Summary collapse
- FRAGMENT =
"id streamId name cursorSequence createdAt updatedAt"
Instance Method Summary collapse
- #advance_cursor(id, sequence) ⇒ Object
- #create(input) ⇒ Object
- #delete(id) ⇒ Object
- #get(id) ⇒ Object
- #iterate(stream_id, options = {}) ⇒ Object
- #list(stream_id, options = {}) ⇒ Object
Methods inherited from BaseService
Constructor Details
This class inherits a constructor from Hivehook::Resources::BaseService
Instance Method Details
#advance_cursor(id, sequence) ⇒ Object
51 52 53 54 |
# File 'lib/hivehook/resources/stream_consumer_service.rb', line 51 def advance_cursor(id, sequence) query = "mutation($id: UUID!, $sequence: Int!) { advanceConsumerCursor(id: $id, sequence: $sequence) { #{FRAGMENT} } }" @transport.execute(query, { "id" => id, "sequence" => sequence })["advanceConsumerCursor"] end |
#create(input) ⇒ Object
41 42 43 44 |
# File 'lib/hivehook/resources/stream_consumer_service.rb', line 41 def create(input) query = "mutation($input: CreateStreamConsumerInput!) { createStreamConsumer(input: $input) { #{FRAGMENT} } }" @transport.execute(query, { "input" => input })["createStreamConsumer"] end |
#delete(id) ⇒ Object
46 47 48 49 |
# File 'lib/hivehook/resources/stream_consumer_service.rb', line 46 def delete(id) query = "mutation($id: UUID!) { deleteStreamConsumer(id: $id) }" @transport.execute(query, { "id" => id })["deleteStreamConsumer"] end |
#get(id) ⇒ Object
36 37 38 39 |
# File 'lib/hivehook/resources/stream_consumer_service.rb', line 36 def get(id) query = "query($id: UUID!) { streamConsumer(id: $id) { #{FRAGMENT} } }" @transport.execute(query, { "id" => id })["streamConsumer"] end |
#iterate(stream_id, options = {}) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/hivehook/resources/stream_consumer_service.rb', line 19 def iterate(stream_id, = {}) return enum_for(:iterate, stream_id, ) unless block_given? opts = .dup offset = opts[:offset] || 0 loop do opts[:offset] = offset conn = list(stream_id, opts) nodes = conn["nodes"] || [] nodes.each { |node| yield node } page_info = conn["pageInfo"] || {} break if !page_info["hasNextPage"] || nodes.empty? offset += nodes.length end end |
#list(stream_id, options = {}) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/hivehook/resources/stream_consumer_service.rb', line 8 def list(stream_id, = {}) query = "query($streamId: UUID!, $search: String, $limit: Int, $offset: Int, $after: String, $first: Int) { streamConsumers(streamId: $streamId, search: $search, limit: $limit, offset: $offset, after: $after, first: $first) { nodes { #{FRAGMENT} } pageInfo { total limit offset endCursor hasNextPage } } }" vars = { "streamId" => stream_id }.merge(build_variables(, %w[search limit offset after first])) @transport.execute(query, vars)["streamConsumers"] end |