Refine the relationship to_one texts.

- This is so we can completely replace the data set being used
  (combination of tplData, and texts) by texts data.
This commit is contained in:
Aaron L 2016-07-16 23:56:09 -07:00
parent e08eacad05
commit f4ce95891c
2 changed files with 26 additions and 7 deletions

View file

@ -10,6 +10,8 @@ import (
// RelationshipToOneTexts contains text that will be used by templates.
type RelationshipToOneTexts struct {
ForeignKey bdb.ForeignKey
LocalTable struct {
NameGo string
ColumnNameGo string
@ -17,10 +19,15 @@ type RelationshipToOneTexts struct {
ForeignTable struct {
NameGo string
Name string
ColumnNameGo string
ColumnName string
}
Function struct {
PackageName string
Name string
Varname string
Receiver string
@ -29,15 +36,21 @@ type RelationshipToOneTexts struct {
}
}
func textsFromForeignKey(tables []bdb.Table, table bdb.Table, fkey bdb.ForeignKey) RelationshipToOneTexts {
func textsFromForeignKey(packageName string, tables []bdb.Table, table bdb.Table, fkey bdb.ForeignKey) RelationshipToOneTexts {
r := RelationshipToOneTexts{}
r.LocalTable.NameGo = strmangle.TitleCase(strmangle.Singular(strings.Replace(table.Name, "_id", "", -1)))
r.LocalTable.ColumnNameGo = strmangle.TitleCase(strmangle.Singular(strings.Replace(fkey.Column, "_id", "", -1)))
r.ForeignKey = fkey
r.LocalTable.NameGo = strmangle.TitleCase(strmangle.Singular(table.Name))
r.LocalTable.ColumnNameGo = strmangle.TitleCase(strmangle.Singular(fkey.Column))
r.ForeignTable.Name = fkey.ForeignTable
r.ForeignTable.NameGo = strmangle.TitleCase(strmangle.Singular(fkey.ForeignTable))
r.ForeignTable.ColumnNameGo = strmangle.TitleCase(strmangle.Singular(strings.Replace(fkey.ForeignColumn, "_id", "", -1)))
r.ForeignTable.ColumnName = fkey.ForeignColumn
r.ForeignTable.ColumnNameGo = strmangle.TitleCase(strmangle.Singular(fkey.ForeignColumn))
r.Function.PackageName = packageName
r.Function.Name = strmangle.TitleCase(strmangle.Singular(strings.TrimSuffix(fkey.Column, "_id")))
r.Function.Varname = strmangle.CamelCase(strmangle.Singular(fkey.ForeignTable))
r.Function.Receiver = strings.ToLower(table.Name[:1])

View file

@ -75,15 +75,21 @@ func TestTextsFromForeignKey(t *testing.T) {
}
videos := bdb.GetTable(tables, "videos")
texts := textsFromForeignKey(tables, videos, videos.FKeys[0])
texts := textsFromForeignKey("models", tables, videos, videos.FKeys[0])
expect := RelationshipToOneTexts{}
expect.LocalTable.NameGo = "Video"
expect.LocalTable.ColumnNameGo = "User"
expect.ForeignKey = videos.FKeys[0]
expect.LocalTable.NameGo = "Video"
expect.LocalTable.ColumnNameGo = "UserID"
expect.ForeignTable.Name = "users"
expect.ForeignTable.NameGo = "User"
expect.ForeignTable.ColumnName = "id"
expect.ForeignTable.ColumnNameGo = "ID"
expect.Function.PackageName = "models"
expect.Function.Name = "User"
expect.Function.Varname = "user"
expect.Function.Receiver = "v"