(ctx context.Context, task Task, newStatus task.Status, q *queue)
| 487 | } |
| 488 | |
| 489 | func saveTaskToInventory(ctx context.Context, task Task, newStatus task.Status, q *queue) error { |
| 490 | var ( |
| 491 | errStr string |
| 492 | errHistory []string |
| 493 | ) |
| 494 | if err := task.Error(); err != nil { |
| 495 | errStr = err.Error() |
| 496 | } |
| 497 | |
| 498 | errHistory = lo.Map(task.ErrorHistory(), func(err error, index int) string { |
| 499 | return err.Error() |
| 500 | }) |
| 501 | |
| 502 | args := &inventory.TaskArgs{ |
| 503 | Status: newStatus, |
| 504 | Type: task.Type(), |
| 505 | PublicState: &types.TaskPublicState{ |
| 506 | RetryCount: task.Retried(), |
| 507 | ExecutedDuration: task.Executed(), |
| 508 | ErrorHistory: errHistory, |
| 509 | Error: errStr, |
| 510 | ResumeTime: task.ResumeTime(), |
| 511 | }, |
| 512 | PrivateState: task.State(), |
| 513 | OwnerID: task.Owner().ID, |
| 514 | CorrelationID: logging.CorrelationID(ctx), |
| 515 | } |
| 516 | |
| 517 | var ( |
| 518 | res *ent.Task |
| 519 | err error |
| 520 | ) |
| 521 | |
| 522 | if !task.Persisted() { |
| 523 | res, err = q.taskClient.New(ctx, args) |
| 524 | } else { |
| 525 | res, err = q.taskClient.Update(ctx, task.Model(), args) |
| 526 | } |
| 527 | if err != nil { |
| 528 | return fmt.Errorf("failed to persist Task into DB: %w", err) |
| 529 | } |
| 530 | |
| 531 | task.OnPersisted(res) |
| 532 | return nil |
| 533 | } |
no test coverage detected