Class: SolidFlow::CLI
- Inherits:
-
Thor
- Object
- Thor
- SolidFlow::CLI
- Defined in:
- lib/solid_flow/cli.rb
Instance Method Summary collapse
- #query(execution_id, query_name) ⇒ Object
- #signal(execution_id, signal_name) ⇒ Object
- #start(workflow_name) ⇒ Object
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([: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.}", :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([:workflow], execution_id) payload = parse_json([: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.}", :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([: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.}", :red) exit(1) end |