MCPcopy Index your code
hub / github.com/riverqueue/river / jobRowFromInternal

Function jobRowFromInternal

riverdriver/riversqlite/river_sqlite_driver.go:1564–1624  ·  view source on GitHub ↗
(internal *dbsqlc.RiverJob)

Source from the content-addressed store, hash-verified

1562}
1563
1564func jobRowFromInternal(internal *dbsqlc.RiverJob) (*rivertype.JobRow, error) {
1565 var attemptedAt *time.Time
1566 if internal.AttemptedAt != nil {
1567 t := internal.AttemptedAt.UTC()
1568 attemptedAt = &t
1569 }
1570
1571 var attemptedBy []string
1572 if internal.AttemptedBy != nil {
1573 if err := json.Unmarshal(internal.AttemptedBy, &attemptedBy); err != nil {
1574 return nil, fmt.Errorf("error unmarshaling `attempted_by`: %w", err)
1575 }
1576 }
1577
1578 var errors []rivertype.AttemptError
1579 if internal.Errors != nil {
1580 if err := json.Unmarshal(internal.Errors, &errors); err != nil {
1581 return nil, fmt.Errorf("error unmarshaling `errors`: %w", err)
1582 }
1583 }
1584
1585 var finalizedAt *time.Time
1586 if internal.FinalizedAt != nil {
1587 t := internal.FinalizedAt.UTC()
1588 finalizedAt = &t
1589 }
1590
1591 var tags []string
1592 if err := json.Unmarshal(internal.Tags, &tags); err != nil {
1593 return nil, fmt.Errorf("error unmarshaling `tags`: %w", err)
1594 }
1595
1596 var uniqueStatesByte byte
1597 if internal.UniqueStates != nil {
1598 if *internal.UniqueStates < 0 || *internal.UniqueStates > 255 {
1599 return nil, fmt.Errorf("value out of range for byte: %d", *internal.UniqueStates)
1600 }
1601 uniqueStatesByte = byte(*internal.UniqueStates)
1602 }
1603
1604 return &rivertype.JobRow{
1605 ID: internal.ID,
1606 Attempt: max(int(internal.Attempt), 0),
1607 AttemptedAt: attemptedAt,
1608 AttemptedBy: attemptedBy,
1609 CreatedAt: internal.CreatedAt.UTC(),
1610 EncodedArgs: internal.Args,
1611 Errors: errors,
1612 FinalizedAt: finalizedAt,
1613 Kind: internal.Kind,
1614 MaxAttempts: max(int(internal.MaxAttempts), 0),
1615 Metadata: internal.Metadata,
1616 Priority: max(int(internal.Priority), 0),
1617 Queue: internal.Queue,
1618 ScheduledAt: internal.ScheduledAt.UTC(),
1619 State: rivertype.JobState(internal.State),
1620 Tags: tags,
1621 UniqueKey: internal.UniqueKey,

Callers 10

JobCancelMethod · 0.70
JobDeleteMethod · 0.70
JobGetByIDMethod · 0.70
JobInsertFastManyMethod · 0.70
JobInsertFullMethod · 0.70
JobRetryMethod · 0.70
JobScheduleMethod · 0.70
JobUpdateMethod · 0.70
JobUpdateFullMethod · 0.70

Calls 3

JobStateTypeAlias · 0.92
UniqueBitmaskToStatesFunction · 0.92
ErrorfMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…