TaskPayloadFromTask converts one task record into the shared payload.
(record *taskpkg.Task)
| 2580 | |
| 2581 | // TaskPayloadFromTask converts one task record into the shared payload. |
| 2582 | func TaskPayloadFromTask(record *taskpkg.Task) contract.TaskPayload { |
| 2583 | if record == nil { |
| 2584 | return contract.TaskPayload{} |
| 2585 | } |
| 2586 | |
| 2587 | return contract.TaskPayload{ |
| 2588 | ID: record.ID, |
| 2589 | Identifier: record.Identifier, |
| 2590 | Scope: record.Scope, |
| 2591 | WorkspaceID: record.WorkspaceID, |
| 2592 | ParentTaskID: record.ParentTaskID, |
| 2593 | NetworkChannel: record.NetworkChannel, |
| 2594 | Title: taskpkg.RedactClaimTokens(strings.TrimSpace(record.Title)), |
| 2595 | Description: taskpkg.RedactClaimTokens(strings.TrimSpace(record.Description)), |
| 2596 | Priority: record.Priority, |
| 2597 | MaxAttempts: record.MaxAttempts, |
| 2598 | AutoEnqueueOnReady: record.AutoEnqueueOnReady, |
| 2599 | Status: record.Status, |
| 2600 | ApprovalPolicy: record.ApprovalPolicy, |
| 2601 | ApprovalState: record.ApprovalState, |
| 2602 | Draft: record.Status.Normalize() == taskpkg.TaskStatusDraft, |
| 2603 | Owner: cloneOwnership(record.Owner), |
| 2604 | CurrentRunID: record.CurrentRunID, |
| 2605 | LatestEventSeq: record.LatestEventSeq, |
| 2606 | Paused: record.Paused, |
| 2607 | PausedBy: record.PausedBy, |
| 2608 | PausedAt: optionalTime(record.PausedAt), |
| 2609 | PausedReason: taskpkg.RedactClaimTokens(strings.TrimSpace(record.PausedReason)), |
| 2610 | EffectivePaused: record.Paused, |
| 2611 | PausedByTaskID: func() string { |
| 2612 | if record.Paused { |
| 2613 | return record.ID |
| 2614 | } |
| 2615 | return "" |
| 2616 | }(), |
| 2617 | NeedsAttention: recordNeedsAttention(record.NeedsAttention, record.Status), |
| 2618 | NeedsAttentionReason: needsAttentionReason(record.NeedsAttention), |
| 2619 | NeedsAttentionAt: needsAttentionAt(record.NeedsAttention), |
| 2620 | NeedsAttentionBy: needsAttentionBy(record.NeedsAttention), |
| 2621 | WakeCreator: record.WakeCreator, |
| 2622 | CreatedBy: record.CreatedBy, |
| 2623 | Origin: record.Origin, |
| 2624 | CreatedAt: record.CreatedAt, |
| 2625 | UpdatedAt: record.UpdatedAt, |
| 2626 | ClosedAt: optionalTime(record.ClosedAt), |
| 2627 | Metadata: redactRawClaimTokenFields(record.Metadata), |
| 2628 | } |
| 2629 | } |
| 2630 | |
| 2631 | func blockedReasonsPayload(reasons *[]taskpkg.BlockedReason) []taskpkg.BlockedReason { |
| 2632 | if reasons == nil || len(*reasons) == 0 { |