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

Method createTaskSpecFromRequest

internal/api/core/tasks.go:2094–2128  ·  view source on GitHub ↗
(
	ctx context.Context,
	req contract.CreateTaskRequest,
)

Source from the content-addressed store, hash-verified

2092}
2093
2094func (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
2130func (h *BaseHandlers) createChildTaskSpecFromRequest(
2131 ctx context.Context,

Callers 1

CreateTaskMethod · 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