Class: SolidFlow::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/solid_flow/cli.rb

Instance Method Summary collapse

Instance Method Details

#query(execution_id, query_name) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/solid_flow/cli.rb', line 37

def query(execution_id, query_name)
  workflow_class = resolve_workflow(options[:workflow], execution_id)
  result = workflow_class.query(execution_id, query_name.to_sym)
  say(JSON.pretty_generate(result))
rescue Errors::ConfigurationError => e
  say("Failed to run query: #{e.message}", :red)
  exit(1)
end

#signal(execution_id, signal_name) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/solid_flow/cli.rb', line 24

def signal(execution_id, signal_name)
  workflow_class = resolve_workflow(options[:workflow], execution_id)
  payload = parse_json(options[:payload])

  workflow_class.signal(execution_id, signal_name.to_sym, payload)
  say("Signal #{signal_name} enqueued for execution #{execution_id}", :green)
rescue Errors::ConfigurationError, JSON::ParserError => e
  say("Failed to send signal: #{e.message}", :red)
  exit(1)
end

#start(workflow_name) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/solid_flow/cli.rb', line 10

def start(workflow_name)
  workflow_class = SolidFlow.configuration.workflow_registry.fetch(workflow_name)
  arguments = parse_json(options[:args])

  execution = workflow_class.start(**symbolize_keys(arguments))
  say("Started execution #{execution.id}", :green)
rescue Errors::ConfigurationError, JSON::ParserError => e
  say("Failed to start workflow: #{e.message}", :red)
  exit(1)
end