Skip to content

Commit

Permalink
some conventions
Browse files Browse the repository at this point in the history
  • Loading branch information
amirrezaask committed Nov 19, 2021
1 parent 50729c5 commit 6c20f6c
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 17 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.16

require (
github.com/DATA-DOG/go-sqlmock v1.5.0
github.com/gertd/go-pluralize v0.1.7
github.com/iancoleman/strcase v0.2.0
github.com/lib/pq v1.10.2
github.com/stretchr/testify v1.7.0
)
6 changes: 2 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@ github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20O
github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gertd/go-pluralize v0.1.7 h1:RgvJTJ5W7olOoAks97BOwOlekBFsLEyh00W48Z6ZEZY=
github.com/gertd/go-pluralize v0.1.7/go.mod h1:O4eNeeIf91MHh1GJ2I47DNtaesm66NYvjYgAahcqSDQ=
github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0=
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8=
github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
Expand Down
27 changes: 15 additions & 12 deletions obj.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"unsafe"

"github.com/golobby/orm/ds"
"github.com/iancoleman/strcase"
)

// Entity
Expand All @@ -16,10 +17,12 @@ type Entity interface {
SetPKValue
Values
}

// Values returns a slice containing all values of current object to be used in insert or updates.
type Values interface {
Values() []interface{}
}

func (s *Repository) valuesOf(o interface{}, withPK bool) []interface{} {
vls, is := o.(Values)
if is {
Expand Down Expand Up @@ -70,7 +73,7 @@ func tableName(v interface{}) string {
func (r *Repository) pkName(v interface{}) string {
for _, field := range r.metadata.Fields {
if field.IsPK {
return field.SQLName
return field.Name
}
}
return ""
Expand Down Expand Up @@ -145,9 +148,9 @@ func (s *Repository) toMap(obj interface{}) []ds.KV {

type ObjectMetadata struct {
// Name of the table that the object represents
Table string
Table string
dialect *Dialect
Fields []*FieldMetadata
Fields []*FieldMetadata
}

func (o *ObjectMetadata) Columns(withPK bool) []string {
Expand All @@ -160,9 +163,9 @@ func (o *ObjectMetadata) Columns(withPK bool) []string {
continue
}
if o.dialect.AddTableNameInSelectColumns {
cols = append(cols, o.Table+"."+field.SQLName)
cols = append(cols, o.Table+"."+field.Name)
} else {
cols = append(cols, field.SQLName)
cols = append(cols, field.Name)
}
}
return cols
Expand All @@ -184,7 +187,7 @@ type RelationMetadata struct {
}

type FieldMetadata struct {
SQLName string
Name string
IsPK bool
IsRel bool
RelationMetadata *RelationMetadata
Expand Down Expand Up @@ -215,7 +218,7 @@ func fieldMetadataFromTag(t string) FieldTag {
key := parts[0]
value := parts[1]
kv[key] = value
if key == "name" || key == "sqlname" {
if key == "name" {
tag.Name = value
} else if key == "in_rel" {
tag.InRel = value == "true"
Expand Down Expand Up @@ -249,11 +252,11 @@ func fieldsOf(obj interface{}, dialect *Dialect) []*FieldMetadata {
tagParsed := fieldMetadataFromTag(ft.Tag.Get("orm"))
fm := &FieldMetadata{}
if tagParsed.Name != "" {
fm.SQLName = tagParsed.Name
fm.Name = tagParsed.Name
} else {
fm.SQLName = ft.Name
fm.Name = strcase.ToSnake(ft.Name)
}
if tagParsed.PK {
if tagParsed.PK || strings.ToLower(ft.Name) == "id" {
fm.IsPK = true
}
if tagParsed.InRel == true {
Expand All @@ -279,8 +282,8 @@ func fieldsOf(obj interface{}, dialect *Dialect) []*FieldMetadata {

func ObjectMetadataFrom(v interface{}, dialect *Dialect) *ObjectMetadata {
return &ObjectMetadata{
Table: tableName(v),
Table: tableName(v),
dialect: dialect,
Fields: fieldsOf(v, dialect),
Fields: fieldsOf(v, dialect),
}
}

0 comments on commit 6c20f6c

Please sign in to comment.