( ctx context.Context, req contract.CreateTaskRequest, )
| 2092 | } |
| 2093 | |
| 2094 | func (h *BaseHandlers) createTaskSpecFromRequest( |
| 2095 | ctx context.Context, |
| 2096 | req contract.CreateTaskRequest, |
| 2097 | ) (taskpkg.CreateTask, error) { |
| 2098 | scope := req.Scope.Normalize() |
| 2099 | workspaceID, err := h.resolveTaskWorkspaceBinding(ctx, scope, req.Workspace, "create_task") |
| 2100 | if err != nil { |
| 2101 | return taskpkg.CreateTask{}, err |
| 2102 | } |
| 2103 | if err := validateTaskChannel("create_task.network_channel", req.NetworkChannel); err != nil { |
| 2104 | return taskpkg.CreateTask{}, err |
| 2105 | } |
| 2106 | |
| 2107 | spec := taskpkg.CreateTask{ |
| 2108 | ID: strings.TrimSpace(req.ID), |
| 2109 | Identifier: strings.TrimSpace(req.Identifier), |
| 2110 | Scope: scope, |
| 2111 | WorkspaceID: workspaceID, |
| 2112 | NetworkChannel: strings.TrimSpace(req.NetworkChannel), |
| 2113 | Title: strings.TrimSpace(req.Title), |
| 2114 | Description: strings.TrimSpace(req.Description), |
| 2115 | Priority: req.Priority.Normalize(), |
| 2116 | MaxAttempts: req.MaxAttempts, |
| 2117 | AutoEnqueueOnReady: req.AutoEnqueueOnReady, |
| 2118 | Draft: req.Draft, |
| 2119 | ApprovalPolicy: req.ApprovalPolicy.Normalize(), |
| 2120 | Owner: cloneOwnership(req.Owner), |
| 2121 | WakeCreator: cloneBoolPtr(req.WakeCreator), |
| 2122 | Metadata: cloneRawMessage(req.Metadata), |
| 2123 | } |
| 2124 | if err := spec.Validate("create_task"); err != nil { |
| 2125 | return taskpkg.CreateTask{}, err |
| 2126 | } |
| 2127 | return spec, nil |
| 2128 | } |
| 2129 | |
| 2130 | func (h *BaseHandlers) createChildTaskSpecFromRequest( |
| 2131 | ctx context.Context, |
no test coverage detected