Method: OpenC3::TriggerModel.delete

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

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

Check dependents before delete.



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/openc3/models/trigger_model.rb', line 87

def self.delete(name:, group:, scope:)
  model = self.get(name: name, group: group, scope: scope)
  if model.nil?
    raise TriggerInputError.new "trigger #{group}:#{name} does not exist"
  end
  unless model.dependents.empty?
    raise TriggerError.new "#{group}:#{name} has 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)
  # No notification as this is only called via trigger_controller which already notifies
end