MCPcopy Create free account
hub / github.com/compozy/agh / deleteTaskWithStore

Method deleteTaskWithStore

internal/task/manager.go:424–459  ·  view source on GitHub ↗
(
	ctx context.Context,
	store DeleteTaskMutationStore,
	trimmedID string,
)

Source from the content-addressed store, hash-verified

422}
423
424func (m *Service) deleteTaskWithStore(
425 ctx context.Context,
426 store DeleteTaskMutationStore,
427 trimmedID string,
428) error {
429 record, err := store.GetTask(ctx, trimmedID)
430 if err != nil {
431 return fmt.Errorf("task: load task %q for delete: %w", trimmedID, err)
432 }
433 if err := m.ensureTaskDeleteAllowedWithStore(ctx, store, record); err != nil {
434 return err
435 }
436
437 dependents, err := store.ListDependents(ctx, trimmedID)
438 if err != nil {
439 return fmt.Errorf("task: list dependents for task %q delete: %w", trimmedID, err)
440 }
441 dependentIDs := uniqueDependentTaskIDs(dependents)
442
443 if err := store.DeleteTask(ctx, trimmedID); err != nil {
444 return fmt.Errorf("task: delete task %q: %w", trimmedID, err)
445 }
446
447 for _, dependentID := range dependentIDs {
448 if _, err := m.reconcileTaskCascadeWithStore(ctx, store, dependentID); err != nil {
449 return fmt.Errorf(
450 "task: reconcile dependent task %q after deleting %q: %w",
451 dependentID,
452 trimmedID,
453 err,
454 )
455 }
456 }
457
458 return nil
459}
460
461// UpdateTask applies one mutable patch while preserving immutable identity and
462// structural fields under manager control.

Callers 1

DeleteTaskMethod · 0.95

Calls 6

uniqueDependentTaskIDsFunction · 0.85
GetTaskMethod · 0.65
ListDependentsMethod · 0.65
DeleteTaskMethod · 0.65

Tested by

no test coverage detected