Class: LinearToonMcp::Tools::SaveProjectMilestone

Inherits:
Base
  • Object
show all
Defined in:
lib/linear_toon_mcp/tools/save_project_milestone.rb

Overview

Create or update a project milestone. id presence determines create vs update. On create, name and project are required; project is resolved via Resolvers::Project. project is create-only — this tool does not move milestones between projects.

Constant Summary collapse

RETURN_FIELDS =

standard:enable Layout/LineLength

<<~GRAPHQL
  id
  name
  description
  targetDate
  sortOrder
  status
  project { id name }
GRAPHQL
CREATE_MUTATION =
<<~GRAPHQL
  mutation($input: ProjectMilestoneCreateInput!) {
    projectMilestoneCreate(input: $input) {
      success
      projectMilestone { #{RETURN_FIELDS.strip} }
    }
  }
GRAPHQL
UPDATE_MUTATION =
<<~GRAPHQL
  mutation($id: String!, $input: ProjectMilestoneUpdateInput!) {
    projectMilestoneUpdate(id: $id, input: $input) {
      success
      projectMilestone { #{RETURN_FIELDS.strip} }
    }
  }
GRAPHQL

Instance Method Summary collapse

Methods inherited from Base

call, #call, error_response, success_response

Instance Method Details

#perform(id: nil, **kwargs) ⇒ Object



60
61
62
# File 'lib/linear_toon_mcp/tools/save_project_milestone.rb', line 60

def perform(id: nil, **kwargs)
  id ? update(id, kwargs) : create(kwargs)
end