github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/sqlx/gen/model_interfaces.go (about) 1 package gen 2 3 import ( 4 "bytes" 5 6 "github.com/johnnyeven/libtools/sqlx/builder" 7 ) 8 9 func (m *Model) GetComments() map[string]string { 10 comments := map[string]string{} 11 m.Columns.Range(func(col *builder.Column, idx int) { 12 comments[col.FieldName] = col.Comment 13 }) 14 return comments 15 } 16 17 func (m *Model) interfaces() string { 18 buf := &bytes.Buffer{} 19 20 if len(m.Keys.Primary) > 0 { 21 m.ParseTo(buf, `func ({{ var .StructName }} *{{ .StructName }}) PrimaryKey() {{ use "github.com/johnnyeven/libtools/sqlx" }}.FieldNames { 22 return {{ dump .Keys.Primary }} 23 } 24 `) 25 } 26 27 if len(m.Keys.Indexes) > 0 { 28 m.ParseTo(buf, `func ({{ var .StructName }} *{{ .StructName }}) Indexes() {{ use "github.com/johnnyeven/libtools/sqlx" }}.Indexes { 29 return {{ dump .Keys.Indexes }} 30 } 31 `) 32 } 33 34 if len(m.Keys.UniqueIndexes) > 0 { 35 m.ParseTo(buf, `func ({{ var .StructName }} *{{ .StructName }}) UniqueIndexes() {{ use "github.com/johnnyeven/libtools/sqlx" }}.Indexes { 36 return {{ dump .Keys.UniqueIndexes }} 37 } 38 `) 39 } 40 41 if m.WithComments { 42 m.ParseTo(buf, `func ({{ var .StructName }} *{{ .StructName }}) Comments() map[string]string { 43 return {{ dump ( .GetComments ) }} 44 }`) 45 } 46 47 return buf.String() 48 }