feat: split type case
This commit is contained in:
parent
f29e9d2485
commit
e71a683736
@ -119,14 +119,13 @@ func (UnixSecondSerializer) Scan(ctx context.Context, field *Field, dst reflect.
|
|||||||
|
|
||||||
// Value implements serializer interface
|
// Value implements serializer interface
|
||||||
func (UnixSecondSerializer) Value(ctx context.Context, field *Field, dst reflect.Value, fieldValue interface{}) (result interface{}, err error) {
|
func (UnixSecondSerializer) Value(ctx context.Context, field *Field, dst reflect.Value, fieldValue interface{}) (result interface{}, err error) {
|
||||||
|
rv := reflect.ValueOf(fieldValue)
|
||||||
switch v := fieldValue.(type) {
|
switch v := fieldValue.(type) {
|
||||||
case int64, int, uint, uint64, int32, uint32, int16, uint16, *int64, *int, *uint, *uint64, *int32, *uint32, *int16, *uint16:
|
case int64, int, uint, uint64, int32, uint32, int16, uint16:
|
||||||
rv := reflect.ValueOf(v)
|
result = time.Unix(reflect.Indirect(rv).Int(), 0)
|
||||||
if rv.Kind() == reflect.Ptr && rv.IsNil() {
|
case *int64, *int, *uint, *uint64, *int32, *uint32, *int16, *uint16:
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
if rv.IsZero() {
|
if rv.IsZero() {
|
||||||
return time.Unix(0, 0), nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
result = time.Unix(reflect.Indirect(rv).Int(), 0)
|
result = time.Unix(reflect.Indirect(rv).Int(), 0)
|
||||||
default:
|
default:
|
||||||
|
@ -103,7 +103,6 @@ func TestSerializer(t *testing.T) {
|
|||||||
CustomSerializerString: "world",
|
CustomSerializerString: "world",
|
||||||
}
|
}
|
||||||
|
|
||||||
data.JobInfo = Job{}
|
|
||||||
if err := DB.Create(&data).Error; err != nil {
|
if err := DB.Create(&data).Error; err != nil {
|
||||||
t.Fatalf("failed to create data, got error %v", err)
|
t.Fatalf("failed to create data, got error %v", err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user