Merge pull request #259 from quirell/add-default-alias
Add DefaultAlias option to TableSQLBuilder
This commit is contained in:
commit
33333585e9
4 changed files with 55 additions and 1 deletions
|
|
@ -24,7 +24,7 @@ import (
|
|||
"github.com/go-jet/jet/v2/{{dialect.PackageName}}"
|
||||
)
|
||||
|
||||
var {{tableTemplate.InstanceName}} = new{{tableTemplate.TypeName}}("{{schemaName}}", "{{.Name}}", "")
|
||||
var {{tableTemplate.InstanceName}} = new{{tableTemplate.TypeName}}("{{schemaName}}", "{{.Name}}", "{{tableTemplate.DefaultAlias}}")
|
||||
|
||||
type {{structImplName}} struct {
|
||||
{{dialect.PackageName}}.Table
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ type TableSQLBuilder struct {
|
|||
FileName string
|
||||
InstanceName string
|
||||
TypeName string
|
||||
DefaultAlias string
|
||||
Column func(columnMetaData metadata.Column) TableSQLBuilderColumn
|
||||
}
|
||||
|
||||
|
|
@ -72,6 +73,7 @@ func DefaultTableSQLBuilder(tableMetaData metadata.Table) TableSQLBuilder {
|
|||
FileName: dbidentifier.ToGoFileName(tableMetaData.Name),
|
||||
InstanceName: dbidentifier.ToGoIdentifier(tableMetaData.Name),
|
||||
TypeName: dbidentifier.ToGoIdentifier(tableMetaData.Name) + "Table",
|
||||
DefaultAlias: "",
|
||||
Column: DefaultTableSQLBuilderColumn,
|
||||
}
|
||||
}
|
||||
|
|
@ -112,6 +114,12 @@ func (tb TableSQLBuilder) UseTypeName(name string) TableSQLBuilder {
|
|||
return tb
|
||||
}
|
||||
|
||||
// UseDefaultAlias returns new TableSQLBuilder with new default alias set
|
||||
func (tb TableSQLBuilder) UseDefaultAlias(defaultAlias string) TableSQLBuilder {
|
||||
tb.DefaultAlias = defaultAlias
|
||||
return tb
|
||||
}
|
||||
|
||||
// UseColumn returns new TableSQLBuilder with new column template function set
|
||||
func (tb TableSQLBuilder) UseColumn(columnsFunc func(column metadata.Column) TableSQLBuilderColumn) TableSQLBuilder {
|
||||
tb.Column = columnsFunc
|
||||
|
|
|
|||
|
|
@ -285,6 +285,29 @@ func TestGeneratorTemplate_SQLBuilder_ChangeTypeAndFileName(t *testing.T) {
|
|||
require.Contains(t, mpaaRating, "var FilmRatingEnumSQLBuilder = &struct {")
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_SQLBuilder_DefaultAlias(t *testing.T) {
|
||||
err := mysql2.Generate(
|
||||
tempTestDir,
|
||||
dbConnection("dvds"),
|
||||
template.Default(postgres2.Dialect).
|
||||
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
|
||||
return template.DefaultSchema(schemaMetaData).
|
||||
UseSQLBuilder(template.DefaultSQLBuilder().
|
||||
UseTable(func(table metadata.Table) template.TableSQLBuilder {
|
||||
if table.Name == "actor" {
|
||||
return template.DefaultTableSQLBuilder(table).UseDefaultAlias("actors")
|
||||
}
|
||||
return template.DefaultTableSQLBuilder(table)
|
||||
}),
|
||||
)
|
||||
}),
|
||||
)
|
||||
require.Nil(t, err)
|
||||
|
||||
actor := file2.Exists(t, defaultTableSQLBuilderFilePath, "actor.go")
|
||||
require.Contains(t, actor, "var Actor = newActorTable(\"dvds\", \"actor\", \"actors\")")
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_Model_AddTags(t *testing.T) {
|
||||
|
||||
err := mysql2.Generate(
|
||||
|
|
|
|||
|
|
@ -341,6 +341,29 @@ func UseSchema(schema string) {
|
|||
`)
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_SQLBuilder_DefaultAlias(t *testing.T) {
|
||||
err := postgres.Generate(
|
||||
tempTestDir,
|
||||
dbConnection,
|
||||
template.Default(postgres2.Dialect).
|
||||
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
|
||||
return template.DefaultSchema(schemaMetaData).
|
||||
UseSQLBuilder(template.DefaultSQLBuilder().
|
||||
UseTable(func(table metadata.Table) template.TableSQLBuilder {
|
||||
if table.Name == "actor" {
|
||||
return template.DefaultTableSQLBuilder(table).UseDefaultAlias("actors")
|
||||
}
|
||||
return template.DefaultTableSQLBuilder(table)
|
||||
}),
|
||||
)
|
||||
}),
|
||||
)
|
||||
require.Nil(t, err)
|
||||
|
||||
actor := file2.Exists(t, defaultTableSQLBuilderFilePath, "actor.go")
|
||||
require.Contains(t, actor, "var Actor = newActorTable(\"dvds\", \"actor\", \"actors\")")
|
||||
}
|
||||
|
||||
func TestGeneratorTemplate_Model_AddTags(t *testing.T) {
|
||||
|
||||
err := postgres.Generate(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue