( ctx context.Context, req contract.CreateTaskChildRequest, )
| 2128 | } |
| 2129 | |
| 2130 | func (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 | |
| 2166 | func taskPatchFromRequest(req contract.UpdateTaskRequest) (taskpkg.Patch, error) { |
| 2167 | if req.NetworkChannel != nil { |
no test coverage detected