Module: Legion::Extensions::Lex::Runners::Runner
- Includes:
- Helpers::Lex
- Defined in:
- lib/legion/extensions/lex/runners/runner.rb
Overview
rubocop:disable Legion/Extension/RunnerPluralModule
Instance Method Summary collapse
- #create(extension_id:, name:, active: true, **opts) ⇒ Object
- #delete(runner_id:, **_opts) ⇒ Object
- #get(runner_id:, **_opts) ⇒ Object
- #update(runner_id:, **opts) ⇒ Object
Instance Method Details
#create(extension_id:, name:, active: true, **opts) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/legion/extensions/lex/runners/runner.rb', line 10 def create(extension_id:, name:, active: true, **opts) existing = find_cached_runner(name, extension_id) return update(runner_id: existing.values[:id], name: name, active: active, **opts) if existing # rubocop:disable Legion/Extension/RunnerReturnHash insert = { extension_id: extension_id, name: name.to_s, active: active, namespace: opts[:namespace] } insert[:queue] = opts.fetch(:queue, name.to_s) insert[:uri] = opts.fetch(:uri, name.to_s) id = Legion::Data::Model::Runner.insert(insert) reload_static_caches { success: true, runner_id: id } end |
#delete(runner_id:, **_opts) ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/legion/extensions/lex/runners/runner.rb', line 53 def delete(runner_id:, **_opts) record = Legion::Data::Model::Runner[runner_id] return { success: false, reason: 'not found' } if record.nil? record.delete reload_static_caches { success: true, runner_id: runner_id } end |
#get(runner_id:, **_opts) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/legion/extensions/lex/runners/runner.rb', line 46 def get(runner_id:, **_opts) record = Legion::Data::Model::Runner[runner_id] return { success: false, reason: 'not found' } if record.nil? { success: true, values: record.values } end |
#update(runner_id:, **opts) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/legion/extensions/lex/runners/runner.rb', line 27 def update(runner_id:, **opts) runner = Legion::Data::Model::Runner[runner_id] return { success: false, reason: 'runner not found' } if runner.nil? changes = {} %i[name namespace active queue uri].each do |column| next unless opts.key?(column) next if runner.values[column] == opts[column] changes[column] = opts[column] end return { success: true, changed: false, runner_id: runner_id } if changes.empty? runner.update(changes) reload_static_caches { success: true, changed: true, updates: changes, runner_id: runner_id } end |