Class: OmnifocusMcp::Tools::Definitions::EditItemTool

Inherits:
FastMcp::Tool
  • Object
show all
Extended by:
OperationFactory
Defined in:
lib/omnifocus_mcp/tools/definitions/edit_item_tool.rb

Overview

‘FastMcp::Tool` for `edit_item`.

Instance Method Summary collapse

Methods included from OperationFactory

default_operation_factory, extended, operation_factory, operation_factory=

Instance Method Details

#call(**args) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/omnifocus_mcp/tools/definitions/edit_item_tool.rb', line 68

def call(**args)
  if missing_identifier?(args)
    return McpEnvelope::ToolReply.failure(Messages::EditItem.missing_identifier).to_envelope
  end

  McpEnvelope.safely("updating #{args[:itemType]}") do
    operation.call(Params::EditItemParams.from_mcp(args)).fold(
      on_ok: ->(edited) { McpEnvelope::ToolReply.success(Messages::EditItem.success(args, edited)) },
      on_error: ->(err) { McpEnvelope::ToolReply.failure(Messages::EditItem.failure(args, err)) }
    )
  end
end