( _ context.Context, mutation ClearTaskBlockMutation, )
| 817 | } |
| 818 | |
| 819 | func (s *inMemoryManagerStore) ClearTaskBlock( |
| 820 | _ context.Context, |
| 821 | mutation ClearTaskBlockMutation, |
| 822 | ) (TaskBlock, error) { |
| 823 | trimmedTaskID := strings.TrimSpace(mutation.TaskID) |
| 824 | taskBlocks := s.blocks[trimmedTaskID] |
| 825 | if taskBlocks == nil { |
| 826 | return TaskBlock{}, ErrTaskBlockNotFound |
| 827 | } |
| 828 | blockID := strings.TrimSpace(mutation.BlockID) |
| 829 | block, ok := taskBlocks[blockID] |
| 830 | if !ok { |
| 831 | return TaskBlock{}, ErrTaskBlockNotFound |
| 832 | } |
| 833 | if !block.ClearedAt.IsZero() { |
| 834 | return TaskBlock{}, fmt.Errorf("%w: task block %q is already cleared", ErrConflict, blockID) |
| 835 | } |
| 836 | block.ClearedAt = mutation.ClearedAt.UTC() |
| 837 | block.ClearedBy = ActorIdentity{ |
| 838 | Kind: mutation.ClearedBy.Kind.Normalize(), |
| 839 | Ref: strings.TrimSpace(mutation.ClearedBy.Ref), |
| 840 | } |
| 841 | block.ClearNote = strings.TrimSpace(mutation.ClearNote) |
| 842 | taskBlocks[blockID] = cloneTaskBlock(block) |
| 843 | return cloneTaskBlock(block), nil |
| 844 | } |
| 845 | |
| 846 | func (s *inMemoryManagerStore) ClearTaskNeedsAttention( |
| 847 | _ context.Context, |
nothing calls this directly
no test coverage detected