Class: OmnifocusMcp::Tools::Definitions::BatchRemoveItemsTool
- Inherits:
-
FastMcp::Tool
- Object
- FastMcp::Tool
- OmnifocusMcp::Tools::Definitions::BatchRemoveItemsTool
- Extended by:
- OperationFactory
- Defined in:
- lib/omnifocus_mcp/tools/definitions/batch_remove_items_tool.rb
Overview
‘FastMcp::Tool` for `batch_remove_items`.
Instance Method Summary collapse
Methods included from OperationFactory
default_operation_factory, extended, operation_factory, operation_factory=
Instance Method Details
#call(**args) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/omnifocus_mcp/tools/definitions/batch_remove_items_tool.rb', line 36 def call(**args) items = Array(args[:items]).map { |item| Params::BatchRemoveItemParams.from_mcp(item) } if any_missing_identifier?(items) return McpEnvelope::ToolReply.failure(Messages::BatchRemoveItems.missing_identifier).to_envelope end McpEnvelope.safely("processing batch removal") do operation.call(items).fold( on_ok: ->(results) { success_reply(results, items) }, on_error: ->(err) { McpEnvelope::ToolReply.failure(Presenters::BatchReport.format_failure(err)) } ) end end |