Class: OmnifocusMcp::Tools::Definitions::RemoveItemTool
- Inherits:
-
FastMcp::Tool
- Object
- FastMcp::Tool
- OmnifocusMcp::Tools::Definitions::RemoveItemTool
- Extended by:
- OperationFactory
- Defined in:
- lib/omnifocus_mcp/tools/definitions/remove_item_tool.rb
Overview
‘FastMcp::Tool` for `remove_item`.
Instance Method Summary collapse
Methods included from OperationFactory
default_operation_factory, extended, operation_factory, operation_factory=
Instance Method Details
#call(**args) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/omnifocus_mcp/tools/definitions/remove_item_tool.rb', line 32 def call(**args) if missing_identifier?(args) return McpEnvelope::ToolReply.failure(Messages::RemoveItem.missing_identifier).to_envelope end unless %w[task project].include?(args[:itemType]) return McpEnvelope::ToolReply.failure(Messages::RemoveItem.invalid_item_type(args[:itemType])).to_envelope end McpEnvelope.safely("removing #{args[:itemType]}") do operation.call(Params::RemoveItemParams.from_mcp(args)).fold( on_ok: ->(removed) { McpEnvelope::ToolReply.success(Messages::RemoveItem.success(args, removed)) }, on_error: ->(err) { McpEnvelope::ToolReply.failure(Messages::RemoveItem.failure(args, err)) } ) end end |