assignValues assigns the values that were returned from sql.Rows (after scanning) to the Task fields.
(columns []string, values []any)
| 92 | // assignValues assigns the values that were returned from sql.Rows (after scanning) |
| 93 | // to the Task fields. |
| 94 | func (t *Task) assignValues(columns []string, values []any) error { |
| 95 | if m, n := len(values), len(columns); m < n { |
| 96 | return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) |
| 97 | } |
| 98 | for i := range columns { |
| 99 | switch columns[i] { |
| 100 | case task.FieldID: |
| 101 | value, ok := values[i].(*sql.NullInt64) |
| 102 | if !ok { |
| 103 | return fmt.Errorf("unexpected type %T for field id", value) |
| 104 | } |
| 105 | t.ID = int(value.Int64) |
| 106 | case task.FieldCreatedAt: |
| 107 | if value, ok := values[i].(*sql.NullTime); !ok { |
| 108 | return fmt.Errorf("unexpected type %T for field created_at", values[i]) |
| 109 | } else if value.Valid { |
| 110 | t.CreatedAt = value.Time |
| 111 | } |
| 112 | case task.FieldUpdatedAt: |
| 113 | if value, ok := values[i].(*sql.NullTime); !ok { |
| 114 | return fmt.Errorf("unexpected type %T for field updated_at", values[i]) |
| 115 | } else if value.Valid { |
| 116 | t.UpdatedAt = value.Time |
| 117 | } |
| 118 | case task.FieldDeletedAt: |
| 119 | if value, ok := values[i].(*sql.NullTime); !ok { |
| 120 | return fmt.Errorf("unexpected type %T for field deleted_at", values[i]) |
| 121 | } else if value.Valid { |
| 122 | t.DeletedAt = new(time.Time) |
| 123 | *t.DeletedAt = value.Time |
| 124 | } |
| 125 | case task.FieldType: |
| 126 | if value, ok := values[i].(*sql.NullString); !ok { |
| 127 | return fmt.Errorf("unexpected type %T for field type", values[i]) |
| 128 | } else if value.Valid { |
| 129 | t.Type = value.String |
| 130 | } |
| 131 | case task.FieldStatus: |
| 132 | if value, ok := values[i].(*sql.NullString); !ok { |
| 133 | return fmt.Errorf("unexpected type %T for field status", values[i]) |
| 134 | } else if value.Valid { |
| 135 | t.Status = task.Status(value.String) |
| 136 | } |
| 137 | case task.FieldPublicState: |
| 138 | if value, ok := values[i].(*[]byte); !ok { |
| 139 | return fmt.Errorf("unexpected type %T for field public_state", values[i]) |
| 140 | } else if value != nil && len(*value) > 0 { |
| 141 | if err := json.Unmarshal(*value, &t.PublicState); err != nil { |
| 142 | return fmt.Errorf("unmarshal field public_state: %w", err) |
| 143 | } |
| 144 | } |
| 145 | case task.FieldPrivateState: |
| 146 | if value, ok := values[i].(*sql.NullString); !ok { |
| 147 | return fmt.Errorf("unexpected type %T for field private_state", values[i]) |
| 148 | } else if value.Valid { |
| 149 | t.PrivateState = value.String |
| 150 | } |
| 151 | case task.FieldCorrelationID: |