Class: LinearToonMcp::Tools::DeleteInitiative
- Defined in:
- lib/linear_toon_mcp/tools/delete_initiative.rb
Overview
Delete a Linear initiative by name or ID. Hard-deletes via initiativeDelete by default; pass archive: true to soft-delete via initiativeArchive. Hard deletes are refused when projects are still linked to the initiative — unlink first or pass archive: true.
Constant Summary collapse
- MUTATION =
<<~GRAPHQL mutation($id: String!) { initiativeDelete(id: $id) { success entityId } } GRAPHQL
- ARCHIVE_MUTATION =
<<~GRAPHQL mutation($id: String!) { initiativeArchive(id: $id) { success entity { id name archivedAt } } } GRAPHQL
- LINKED_PROJECTS_QUERY =
<<~GRAPHQL query($id: String!) { initiative(id: $id) { projects(first: 1) { nodes { id } } } } GRAPHQL
Instance Method Summary collapse
Methods inherited from Delete
entity, entity_label, entity_name, label, mutation, mutation_name, mutation_string, #variables
Methods inherited from Base
call, #call, error_response, success_response
Instance Method Details
#perform(query:, archive: false) ⇒ Object
47 48 49 50 |
# File 'lib/linear_toon_mcp/tools/delete_initiative.rb', line 47 def perform(query:, archive: false) initiative_id = Resolvers::Initiative.call(value: query) archive ? archive_initiative(initiative_id) : hard_delete(initiative_id, query) end |