Class: Rubyists::Leopard::NatsServiceDiscovery::Operation::Collect

Inherits:
Trailblazer::Operation
  • Object
show all
Defined in:
lib/leopard/nats_service_discovery/operation/collect.rb

Overview

Collects and parses JSON replies for an arbitrary Service API subject.

On success, the result exposes :responses. On failure, the result exposes :error.

Instance Method Summary collapse

Instance Method Details

#collect(ctx, client:, subject:, timeout: DEFAULT_TIMEOUT) ⇒ Boolean

Collects JSON replies from subject.

Parameters:

  • ctx (Hash)

    Operation context.

  • client (NATS::Client)

    Connected NATS client.

  • subject (String)

    Service API subject to query.

  • timeout (Numeric) (defaults to: DEFAULT_TIMEOUT)

    Idle timeout while waiting for replies.

Returns:

  • (Boolean)

    Whether replies were collected successfully.



25
26
27
28
29
30
# File 'lib/leopard/nats_service_discovery/operation/collect.rb', line 25

def collect(ctx, client:, subject:, timeout: DEFAULT_TIMEOUT, **)
  ctx[:responses] = NatsServiceDiscovery.new(client:).send(:collect_json, subject, timeout:)
rescue StandardError => e
  ctx[:error] = e
  false
end