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

Method createChildTaskSpecFromRequest

internal/api/core/tasks.go:2130–2164  ·  view source on GitHub ↗
(
	ctx context.Context,
	req contract.CreateTaskChildRequest,
)

Source from the content-addressed store, hash-verified

2128}
2129
2130func (h *BaseHandlers) createChildTaskSpecFromRequest(
2131 ctx context.Context,
2132 req contract.CreateTaskChildRequest,
2133) (taskpkg.CreateTask, error) {
2134 scope := req.Scope.Normalize()
2135 workspaceID, err := h.resolveTaskWorkspaceBinding(ctx, scope, req.Workspace, "create_child_task")
2136 if err != nil {
2137 return taskpkg.CreateTask{}, err
2138 }
2139 if err := validateTaskChannel("create_child_task.network_channel", req.NetworkChannel); err != nil {
2140 return taskpkg.CreateTask{}, err
2141 }
2142
2143 spec := taskpkg.CreateTask{
2144 ID: strings.TrimSpace(req.ID),
2145 Identifier: strings.TrimSpace(req.Identifier),
2146 Scope: scope,
2147 WorkspaceID: workspaceID,
2148 NetworkChannel: strings.TrimSpace(req.NetworkChannel),
2149 Title: strings.TrimSpace(req.Title),
2150 Description: strings.TrimSpace(req.Description),
2151 Priority: req.Priority.Normalize(),
2152 MaxAttempts: req.MaxAttempts,
2153 AutoEnqueueOnReady: req.AutoEnqueueOnReady,
2154 Draft: req.Draft,
2155 ApprovalPolicy: req.ApprovalPolicy.Normalize(),
2156 Owner: cloneOwnership(req.Owner),
2157 WakeCreator: cloneBoolPtr(req.WakeCreator),
2158 Metadata: cloneRawMessage(req.Metadata),
2159 }
2160 if err := spec.Validate("create_child_task"); err != nil {
2161 return taskpkg.CreateTask{}, err
2162 }
2163 return spec, nil
2164}
2165
2166func taskPatchFromRequest(req contract.UpdateTaskRequest) (taskpkg.Patch, error) {
2167 if req.NetworkChannel != nil {

Callers 1

CreateChildTaskMethod · 0.95

Calls 7

ValidateMethod · 0.95
validateTaskChannelFunction · 0.70
cloneOwnershipFunction · 0.70
cloneBoolPtrFunction · 0.70
cloneRawMessageFunction · 0.70
NormalizeMethod · 0.45

Tested by

no test coverage detected