Method: OpenC3::TriggerModel.delete

Defined in:
lib/openc3/models/trigger_model.rb

.delete(name:, group:, scope:) ⇒ Object

Check dependents before delete.



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/openc3/models/trigger_model.rb', line 79

def self.delete(name:, group:, scope:)
  model = self.get(name: name, group: group, scope: scope)
  if model.nil?
    raise TriggerInputError.new "invalid operation group: #{group} trigger: #{name} not found"
  end
  unless model.dependents.empty?
    raise TriggerError.new "failed to delete #{name} dependents: #{model.dependents}"
  end
  model.roots.each do | trigger |
    trigger_model = self.get(name: trigger, group: group, scope: scope)
    trigger_model.update_dependents(dependent: name, remove: true)
    trigger_model.update()
  end
  Store.hdel("#{scope}#{PRIMARY_KEY}#{group}", name)
  model.notify(kind: 'deleted')
end