( ctx context.Context, store DeleteTaskMutationStore, taskID string, )
| 2819 | } |
| 2820 | |
| 2821 | func (m *Service) reconcileTaskWithStore( |
| 2822 | ctx context.Context, |
| 2823 | store DeleteTaskMutationStore, |
| 2824 | taskID string, |
| 2825 | ) (Task, error) { |
| 2826 | record, err := store.GetTask(ctx, taskID) |
| 2827 | if err != nil { |
| 2828 | return Task{}, err |
| 2829 | } |
| 2830 | dependencies, err := store.ListDependencies(ctx, taskID) |
| 2831 | if err != nil { |
| 2832 | return Task{}, err |
| 2833 | } |
| 2834 | runs, err := store.ListTaskRuns(ctx, RunQuery{TaskID: taskID}) |
| 2835 | if err != nil { |
| 2836 | return Task{}, err |
| 2837 | } |
| 2838 | |
| 2839 | canonicalStatus, err := m.canonicalTaskStatusWithStore(ctx, store, record, dependencies, runs) |
| 2840 | if err != nil { |
| 2841 | return Task{}, err |
| 2842 | } |
| 2843 | if record.Status.Normalize() == canonicalStatus.Normalize() { |
| 2844 | return record, nil |
| 2845 | } |
| 2846 | |
| 2847 | record.Status = canonicalStatus |
| 2848 | record.UpdatedAt = m.now().UTC() |
| 2849 | if isTerminalTaskStatus(record.Status) { |
| 2850 | record.ClosedAt = record.UpdatedAt |
| 2851 | } else { |
| 2852 | record.ClosedAt = time.Time{} |
| 2853 | } |
| 2854 | if err := store.UpdateTask(ctx, record); err != nil { |
| 2855 | return Task{}, err |
| 2856 | } |
| 2857 | return record, nil |
| 2858 | } |
| 2859 | |
| 2860 | func (m *Service) reconcileTaskCascade(ctx context.Context, taskID string) (Task, error) { |
| 2861 | return m.reconcileTaskCascadeWithStore(ctx, m.store, taskID) |
no test coverage detected