MCPcopy Create free account
hub / github.com/alecthomas/devtodo2 / handleReparent

Method handleReparent

mcp/server.go:367–400  ·  view source on GitHub ↗
(index, parent string)

Source from the content-addressed store, hash-verified

365}
366
367func (s *Server) handleReparent(index, parent string) (*mcp.CallToolResult, any, error) {
368 if index == "" {
369 return nil, nil, fmt.Errorf("index is required")
370 }
371
372 tasks, err := s.load()
373 if err != nil {
374 return nil, nil, fmt.Errorf("load tasks: %w", err)
375 }
376 if tasks == nil {
377 return nil, nil, fmt.Errorf("no task list found")
378 }
379
380 task := tasks.Find(index)
381 if task == nil {
382 return nil, nil, fmt.Errorf("task %q not found", index)
383 }
384
385 var below devtodo2.TaskNode = tasks
386 if parent != "" {
387 below = tasks.Find(parent)
388 if below == nil {
389 return nil, nil, fmt.Errorf("parent %q not found", parent)
390 }
391 }
392
393 devtodo2.ReparentTask(task, below)
394
395 if err := s.save(tasks); err != nil {
396 return nil, nil, fmt.Errorf("save: %w", err)
397 }
398
399 return jsonResult(map[string]any{"task": taskToInfo(task)})
400}
401
402func taskIndex(task devtodo2.Task) string {
403 var parts []string

Callers 1

registerToolsMethod · 0.95

Calls 6

loadMethod · 0.95
saveMethod · 0.95
ReparentTaskFunction · 0.92
jsonResultFunction · 0.85
taskToInfoFunction · 0.85
FindMethod · 0.65

Tested by

no test coverage detected