(current Task, patch Patch)
| 556 | } |
| 557 | |
| 558 | func applyTaskPatch(current Task, patch Patch) (Task, []string) { |
| 559 | updated := current |
| 560 | changedFields := make([]string, 0, len(MutableTaskFields())) |
| 561 | |
| 562 | if patch.Title != nil && updated.Title != *patch.Title { |
| 563 | updated.Title = *patch.Title |
| 564 | changedFields = append(changedFields, TaskFieldTitle) |
| 565 | } |
| 566 | if patch.Description != nil && updated.Description != *patch.Description { |
| 567 | updated.Description = *patch.Description |
| 568 | changedFields = append(changedFields, TaskFieldDescription) |
| 569 | } |
| 570 | if patch.Priority != nil && updated.Priority != *patch.Priority { |
| 571 | updated.Priority = *patch.Priority |
| 572 | changedFields = append(changedFields, TaskFieldPriority) |
| 573 | } |
| 574 | if patch.MaxAttempts != nil && updated.MaxAttempts != *patch.MaxAttempts { |
| 575 | updated.MaxAttempts = *patch.MaxAttempts |
| 576 | changedFields = append(changedFields, TaskFieldMaxAttempts) |
| 577 | } |
| 578 | if patch.AutoEnqueueOnReady != nil && updated.AutoEnqueueOnReady != *patch.AutoEnqueueOnReady { |
| 579 | updated.AutoEnqueueOnReady = *patch.AutoEnqueueOnReady |
| 580 | changedFields = append(changedFields, TaskFieldAutoEnqueueOnReady) |
| 581 | } |
| 582 | if patch.ApprovalPolicy != nil && updated.ApprovalPolicy != *patch.ApprovalPolicy { |
| 583 | updated.ApprovalPolicy = *patch.ApprovalPolicy |
| 584 | updated.ApprovalState = defaultApprovalStateForPolicy(*patch.ApprovalPolicy) |
| 585 | changedFields = append(changedFields, TaskFieldApprovalPolicy) |
| 586 | } |
| 587 | return applyTaskPatchReferences(updated, patch, changedFields) |
| 588 | } |
| 589 | |
| 590 | func applyTaskPatchReferences(updated Task, patch Patch, changedFields []string) (Task, []string) { |
| 591 | if patch.Metadata != nil && !sameRawJSON(updated.Metadata, *patch.Metadata) { |
no test coverage detected