module Legion::Extensions::Lex::Runners::Runner

Public Instance Methods

create(extension_id:, name:, active: 1, **opts) click to toggle source
# File lib/legion/extensions/lex/runners/runner.rb, line 6
def create(extension_id:, name:, active: 1, **opts)
  exist = Legion::Data::Model::Runner.where(name: name.to_s).where(extension_id: extension_id).first
  unless exist.nil?
    update_hash = { runner_id: exist.values[:id], name: name, active: active, **opts }
    return Legion::Runner.run(runner_class: 'Legion::Extensions::Lex::Runners::Runner',
                              function:     'update',
                              args:         update_hash,
                              parent_id:    opts[:task_id],
                              master_id:    opts[:master_id])
  end
  insert = { extension_id: extension_id, name: name.to_s, active: active, namespace: opts[:namespace] }
  insert[:queue] = opts.key?(:queue) ? opts[:queue] : name.to_s
  insert[:uri] = opts.key?(:uri) ? opts[:uri] : name.to_s
  { success: true, runner_id: Legion::Data::Model::Runner.insert(insert) }
end
delete(runner_id:, **_opts) click to toggle source
# File lib/legion/extensions/lex/runners/runner.rb, line 41
def delete(runner_id:, **_opts)
  { runner_id: runner_id, result: Legion::Data::Model::Runner[runner_id].delete }
end
get(runner_id:, **_opts) click to toggle source
# File lib/legion/extensions/lex/runners/runner.rb, line 37
def get(runner_id:, **_opts)
  Legion::Data::Model::Runner[runner_id].values
end
update(runner_id:, **opts) click to toggle source
# File lib/legion/extensions/lex/runners/runner.rb, line 22
def update(runner_id:, **opts)
  runner = Legion::Data::Model::Runner[runner_id]
  update = {}
  %i[name namespace active queue uri].each do |column|
    next unless opts.key? column
    next if runner.values[column] == opts[column]

    update[column] = opts[column]
  end

  { success: true, changed: false, runner_id: runner_id } if update.count.zero?
  runner.update(update)
  { success: true, changed: true, updates: update, runner_id: runner_id }
end