Module: Legion::Extensions::Lex::Runners::Extension
- Includes:
- Helpers::Lex
- Defined in:
- lib/legion/extensions/lex/runners/extension.rb
Instance Method Summary collapse
- #create(name:, namespace:, active: 1, **opts) ⇒ Object
- #delete(extension_id:, **_opts) ⇒ Object
- #get(**opts) ⇒ Object
- #update(extension_id:, **opts) ⇒ Object
Instance Method Details
#create(name:, namespace:, active: 1, **opts) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/legion/extensions/lex/runners/extension.rb', line 6 def create(name:, namespace:, active: 1, **opts) exist = model.where(name: name).first unless exist.nil? update_hash = { extension_id: exist.values[:id], namespace: namespace, **opts } return Legion::Runner.run(runner_class: to_s, function: 'update', args: update_hash, parent_id: opts[:task_id], master_id: opts[:master_id] || opts[:task_id])[:result] end insert = { name: name, namespace: namespace, active: active } insert[:exchange] = opts.key?(:exchange) ? opts[:exchange] : name insert[:uri] = opts.key?(:uri) ? opts[:uri] : name { success: true, extension_id: model.insert(insert) } end |
#delete(extension_id:, **_opts) ⇒ Object
46 47 48 49 |
# File 'lib/legion/extensions/lex/runners/extension.rb', line 46 def delete(extension_id:, **_opts) Legion::Data::Model::Extension[extension_id].delete { success: true, extension_id: extension_id } end |
#get(**opts) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/legion/extensions/lex/runners/extension.rb', line 38 def get(**opts) extension = Legion::Data::Model::Extension extension.where(id: opts[:extension_id]) if opts.key? :extension_id extension.where(name: opts[:name]) if opts.key? :name extension.where(namespace: opts[:namespace]) if opts.key? :namespace { success: true, values: extension.first.values } end |
#update(extension_id:, **opts) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/legion/extensions/lex/runners/extension.rb', line 23 def update(extension_id:, **opts) extension = Legion::Data::Model::Extension[extension_id] update = {} %i[name namespace active exchange uri].each do |column| next unless opts.key? column next if extension.values[column] == opts[column] update[column] = opts[column] end { success: true, changed: false, extension_id: extension_id } if update.count.zero? extension.update(update) { success: true, changed: true, updates: update, extension_id: extension_id } end |