Class: TrakFlow::Mcp::Tools::WorkflowDiscard

Inherits:
BaseTool
  • Object
show all
Defined in:
lib/trak_flow/mcp/tools/workflow_discard.rb

Instance Method Summary collapse

Methods inherited from BaseTool

with_database

Instance Method Details

#call(id:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/trak_flow/mcp/tools/workflow_discard.rb', line 14

def call(id:)
  self.class.with_database do |db|
    workflow = db.find_task!(id)
    raise TrakFlow::Error, "Can only discard ephemeral Workflows" unless workflow.discardable?

    db.child_tasks(id).each { |child| db.delete_task(child.id) }
    db.delete_task(id)

    { discarded: id, success: true }
  end
end