From 99f1e6c8b5683ef789d72d1b0e684ac658890fb0 Mon Sep 17 00:00:00 2001 From: miraclesu Date: Sat, 9 Apr 2016 10:22:40 +0800 Subject: [PATCH] orm: fix golint --- orm/cmd_utils.go | 4 ++-- orm/db.go | 8 ++++---- orm/models_fields.go | 44 +++++++++++++++++++++++++------------------- orm/models_info_f.go | 4 ++-- orm/models_test.go | 24 ++++++++++++------------ orm/orm_test.go | 28 ++++++++++++++-------------- 6 files changed, 59 insertions(+), 53 deletions(-) diff --git a/orm/cmd_utils.go b/orm/cmd_utils.go index 51e9b8d2..94e6070b 100644 --- a/orm/cmd_utils.go +++ b/orm/cmd_utils.go @@ -90,7 +90,7 @@ checkColumn: } else { col = fmt.Sprintf(s, fi.digits, fi.decimals) } - case TypeJsonField: + case TypeJSONField: if al.Driver != DRPostgres { fieldType = TypeCharField goto checkColumn @@ -290,7 +290,7 @@ func getColumnDefault(fi *fieldInfo) string { case TypeBooleanField: t = " DEFAULT %s " d = "FALSE" - case TypeJsonField, TypeJsonbField: + case TypeJSONField, TypeJsonbField: d = "{}" } diff --git a/orm/db.go b/orm/db.go index 0ff97cda..7796686a 100644 --- a/orm/db.go +++ b/orm/db.go @@ -141,7 +141,7 @@ func (d *dbBase) collectFieldValue(mi *modelInfo, fi *fieldInfo, ind reflect.Val } else { value = field.Bool() } - case TypeCharField, TypeTextField, TypeJsonField, TypeJsonbField: + case TypeCharField, TypeTextField, TypeJSONField, TypeJsonbField: if ns, ok := field.Interface().(sql.NullString); ok { value = nil if ns.Valid { @@ -247,7 +247,7 @@ func (d *dbBase) collectFieldValue(mi *modelInfo, fi *fieldInfo, ind reflect.Val field.Set(reflect.ValueOf(tnow.In(DefaultTimeLoc))) } } - case TypeJsonField, TypeJsonbField: + case TypeJSONField, TypeJsonbField: if s, ok := value.(string); (ok && len(s) == 0) || value == nil { if fi.colDefault && fi.initial.Exist() { value = fi.initial.String() @@ -1101,7 +1101,7 @@ setValue: } value = b } - case fieldType == TypeCharField || fieldType == TypeTextField || fieldType == TypeJsonField || fieldType == TypeJsonbField: + case fieldType == TypeCharField || fieldType == TypeTextField || fieldType == TypeJSONField || fieldType == TypeJsonbField: if str == nil { value = ToStr(val) } else { @@ -1247,7 +1247,7 @@ setValue: field.SetBool(value.(bool)) } } - case fieldType == TypeCharField || fieldType == TypeTextField || fieldType == TypeJsonField || fieldType == TypeJsonbField: + case fieldType == TypeCharField || fieldType == TypeTextField || fieldType == TypeJSONField || fieldType == TypeJsonbField: if isNative { if ns, ok := field.Interface().(sql.NullString); ok { if value == nil { diff --git a/orm/models_fields.go b/orm/models_fields.go index a49cde4d..57820600 100644 --- a/orm/models_fields.go +++ b/orm/models_fields.go @@ -38,7 +38,7 @@ const ( TypePositiveBigIntegerField TypeFloatField TypeDecimalField - TypeJsonField + TypeJSONField TypeJsonbField RelForeignKey RelOneToOne @@ -148,7 +148,7 @@ func (e *CharField) RawValue() interface{} { // verify CharField implement Fielder var _ Fielder = new(CharField) -// A time, represented in go by a time.Time instance. +// TimeField A time, represented in go by a time.Time instance. // only time values like 10:00:00 // Has a few extra, optional attr tag: // @@ -163,22 +163,27 @@ var _ Fielder = new(CharField) // eg: `orm:"auto_now"` or `orm:"auto_now_add"` type TimeField time.Time +// Value return the time.Time func (e TimeField) Value() time.Time { return time.Time(e) } +// Set set the TimeField's value func (e *TimeField) Set(d time.Time) { *e = TimeField(d) } +// String convert time to string func (e *TimeField) String() string { return e.Value().String() } +// FieldType return enum type Date func (e *TimeField) FieldType() int { return TypeDateField } +// SetRaw convert the interface to time.Time. Allow string and time.Time func (e *TimeField) SetRaw(value interface{}) error { switch d := value.(type) { case time.Time: @@ -195,6 +200,7 @@ func (e *TimeField) SetRaw(value interface{}) error { return nil } +// RawValue return time value func (e *TimeField) RawValue() interface{} { return e.Value() } @@ -684,47 +690,47 @@ func (e *TextField) RawValue() interface{} { // verify TextField implement Fielder var _ Fielder = new(TextField) -// JsonField postgres json field. -type JsonField string +// JSONField postgres json field. +type JSONField string -// Value return JsonField value -func (j JsonField) Value() string { +// Value return JSONField value +func (j JSONField) Value() string { return string(j) } -// Set the JsonField value -func (j *JsonField) Set(d string) { - *j = JsonField(d) +// Set the JSONField value +func (j *JSONField) Set(d string) { + *j = JSONField(d) } -// String convert JsonField to string -func (j *JsonField) String() string { +// String convert JSONField to string +func (j *JSONField) String() string { return j.Value() } // FieldType return enum type -func (j *JsonField) FieldType() int { - return TypeJsonField +func (j *JSONField) FieldType() int { + return TypeJSONField } // SetRaw convert interface string to string -func (j *JsonField) SetRaw(value interface{}) error { +func (j *JSONField) SetRaw(value interface{}) error { switch d := value.(type) { case string: j.Set(d) default: - return fmt.Errorf(" unknown value `%s`", value) + return fmt.Errorf(" unknown value `%s`", value) } return nil } -// RawValue return JsonField value -func (j *JsonField) RawValue() interface{} { +// RawValue return JSONField value +func (j *JSONField) RawValue() interface{} { return j.Value() } -// verify JsonField implement Fielder -var _ Fielder = new(JsonField) +// verify JSONField implement Fielder +var _ Fielder = new(JSONField) // JsonbField postgres json field. type JsonbField string diff --git a/orm/models_info_f.go b/orm/models_info_f.go index 1d4d267e..366473ce 100644 --- a/orm/models_info_f.go +++ b/orm/models_info_f.go @@ -244,7 +244,7 @@ checkType: case "text": fieldType = TypeTextField case "json": - fieldType = TypeJsonField + fieldType = TypeJSONField case "jsonb": fieldType = TypeJsonbField } @@ -349,7 +349,7 @@ checkType: switch fieldType { case TypeBooleanField: - case TypeCharField, TypeJsonField, TypeJsonbField: + case TypeCharField, TypeJSONField, TypeJsonbField: if size != "" { v, e := StrTo(size).Int32() if e != nil { diff --git a/orm/models_test.go b/orm/models_test.go index d1e3e66e..c68c7339 100644 --- a/orm/models_test.go +++ b/orm/models_test.go @@ -78,41 +78,41 @@ func (e *SliceStringField) RawValue() interface{} { var _ Fielder = new(SliceStringField) // A json field. -type JSONField struct { +type JSONFieldTest struct { Name string Data string } -func (e *JSONField) String() string { +func (e *JSONFieldTest) String() string { data, _ := json.Marshal(e) return string(data) } -func (e *JSONField) FieldType() int { +func (e *JSONFieldTest) FieldType() int { return TypeTextField } -func (e *JSONField) SetRaw(value interface{}) error { +func (e *JSONFieldTest) SetRaw(value interface{}) error { switch d := value.(type) { case string: return json.Unmarshal([]byte(d), e) default: - return fmt.Errorf(" unknown value `%v`", value) + return fmt.Errorf(" unknown value `%v`", value) } } -func (e *JSONField) RawValue() interface{} { +func (e *JSONFieldTest) RawValue() interface{} { return e.String() } -var _ Fielder = new(JSONField) +var _ Fielder = new(JSONFieldTest) type Data struct { ID int `orm:"column(id)"` Boolean bool Char string `orm:"size(50)"` Text string `orm:"type(text)"` - Json string `orm:"type(json);default({\"name\":\"json\"})"` + JSON string `orm:"type(json);default({\"name\":\"json\"})"` Jsonb string `orm:"type(jsonb)"` Time time.Time `orm:"type(time)"` Date time.Time `orm:"type(date)"` @@ -139,7 +139,7 @@ type DataNull struct { Boolean bool `orm:"null"` Char string `orm:"null;size(50)"` Text string `orm:"null;type(text)"` - Json string `orm:"type(json);null"` + JSON string `orm:"type(json);null"` Jsonb string `orm:"type(jsonb);null"` Time time.Time `orm:"null;type(time)"` Date time.Time `orm:"null;type(date)"` @@ -243,7 +243,7 @@ type User struct { ShouldSkip string `orm:"-"` Nums int Langs SliceStringField `orm:"size(100)"` - Extra JSONField `orm:"type(text)"` + Extra JSONFieldTest `orm:"type(text)"` unexport bool `orm:"-"` unexportBool bool } @@ -394,12 +394,12 @@ func NewInLineOneToOne() *InLineOneToOne { } type IntegerPk struct { - Id int64 `orm:"pk"` + ID int64 `orm:"pk"` Value string } type UintPk struct { - Id uint32 `orm:"pk"` + ID uint32 `orm:"pk"` Name string } diff --git a/orm/orm_test.go b/orm/orm_test.go index e8909da8..fa1147f6 100644 --- a/orm/orm_test.go +++ b/orm/orm_test.go @@ -241,7 +241,7 @@ var DataValues = map[string]interface{}{ "Boolean": true, "Char": "char", "Text": "text", - "Json": `{"name":"json"}`, + "JSON": `{"name":"json"}`, "Jsonb": `{"name": "jsonb"}`, "Time": time.Now(), "Date": time.Now(), @@ -268,7 +268,7 @@ func TestDataTypes(t *testing.T) { ind := reflect.Indirect(reflect.ValueOf(&d)) for name, value := range DataValues { - if name == "Json" { + if name == "JSON" { continue } e := ind.FieldByName(name) @@ -316,7 +316,7 @@ func TestNullDataTypes(t *testing.T) { throwFail(t, AssertIs(id, 1)) data := `{"ok":1,"data":{"arr":[1,2],"msg":"gopher"}}` - d = DataNull{ID: 1, Json: data} + d = DataNull{ID: 1, JSON: data} num, err := dORM.Update(&d) throwFail(t, err) throwFail(t, AssertIs(num, 1)) @@ -325,7 +325,7 @@ func TestNullDataTypes(t *testing.T) { err = dORM.Read(&d) throwFail(t, err) - throwFail(t, AssertIs(d.Json, data)) + throwFail(t, AssertIs(d.JSON, data)) throwFail(t, AssertIs(d.NullBool.Valid, false)) throwFail(t, AssertIs(d.NullString.Valid, false)) @@ -2027,9 +2027,9 @@ func TestInLineOneToOne(t *testing.T) { func TestIntegerPk(t *testing.T) { its := []IntegerPk{ - {Id: math.MinInt64, Value: "-"}, - {Id: 0, Value: "0"}, - {Id: math.MaxInt64, Value: "+"}, + {ID: math.MinInt64, Value: "-"}, + {ID: 0, Value: "0"}, + {ID: math.MaxInt64, Value: "+"}, } num, err := dORM.InsertMulti(len(its), its) @@ -2037,7 +2037,7 @@ func TestIntegerPk(t *testing.T) { throwFail(t, AssertIs(num, len(its))) for _, intPk := range its { - out := IntegerPk{Id: intPk.Id} + out := IntegerPk{ID: intPk.ID} err = dORM.Read(&out) throwFail(t, err) throwFail(t, AssertIs(out.Value, intPk.Value)) @@ -2085,21 +2085,21 @@ func TestInsertAuto(t *testing.T) { func TestUintPk(t *testing.T) { name := "go" u := &UintPk{ - Id: 8, + ID: 8, Name: name, } - created, pk, err := dORM.ReadOrCreate(u, "Id") + created, pk, err := dORM.ReadOrCreate(u, "ID") throwFail(t, err) throwFail(t, AssertIs(created, true)) throwFail(t, AssertIs(u.Name, name)) - nu := &UintPk{Id: 8} - created, pk, err = dORM.ReadOrCreate(nu, "Id") + nu := &UintPk{ID: 8} + created, pk, err = dORM.ReadOrCreate(nu, "ID") throwFail(t, err) throwFail(t, AssertIs(created, false)) - throwFail(t, AssertIs(nu.Id, u.Id)) - throwFail(t, AssertIs(pk, u.Id)) + throwFail(t, AssertIs(nu.ID, u.ID)) + throwFail(t, AssertIs(pk, u.ID)) throwFail(t, AssertIs(nu.Name, name)) dORM.Delete(u)