Add DefaultAlias option to TableSQLBuilder
This commit is contained in:
parent
a2eb15e566
commit
39f9996b34
4 changed files with 55 additions and 1 deletions
|
|
@ -24,7 +24,7 @@ import (
|
||||||
"github.com/go-jet/jet/v2/{{dialect.PackageName}}"
|
"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 {
|
type {{structImplName}} struct {
|
||||||
{{dialect.PackageName}}.Table
|
{{dialect.PackageName}}.Table
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ type TableSQLBuilder struct {
|
||||||
FileName string
|
FileName string
|
||||||
InstanceName string
|
InstanceName string
|
||||||
TypeName string
|
TypeName string
|
||||||
|
DefaultAlias string
|
||||||
Column func(columnMetaData metadata.Column) TableSQLBuilderColumn
|
Column func(columnMetaData metadata.Column) TableSQLBuilderColumn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,6 +73,7 @@ func DefaultTableSQLBuilder(tableMetaData metadata.Table) TableSQLBuilder {
|
||||||
FileName: dbidentifier.ToGoFileName(tableMetaData.Name),
|
FileName: dbidentifier.ToGoFileName(tableMetaData.Name),
|
||||||
InstanceName: dbidentifier.ToGoIdentifier(tableMetaData.Name),
|
InstanceName: dbidentifier.ToGoIdentifier(tableMetaData.Name),
|
||||||
TypeName: dbidentifier.ToGoIdentifier(tableMetaData.Name) + "Table",
|
TypeName: dbidentifier.ToGoIdentifier(tableMetaData.Name) + "Table",
|
||||||
|
DefaultAlias: "",
|
||||||
Column: DefaultTableSQLBuilderColumn,
|
Column: DefaultTableSQLBuilderColumn,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -112,6 +114,12 @@ func (tb TableSQLBuilder) UseTypeName(name string) TableSQLBuilder {
|
||||||
return tb
|
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
|
// UseColumn returns new TableSQLBuilder with new column template function set
|
||||||
func (tb TableSQLBuilder) UseColumn(columnsFunc func(column metadata.Column) TableSQLBuilderColumn) TableSQLBuilder {
|
func (tb TableSQLBuilder) UseColumn(columnsFunc func(column metadata.Column) TableSQLBuilderColumn) TableSQLBuilder {
|
||||||
tb.Column = columnsFunc
|
tb.Column = columnsFunc
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,29 @@ func TestGeneratorTemplate_SQLBuilder_ChangeTypeAndFileName(t *testing.T) {
|
||||||
require.Contains(t, mpaaRating, "var FilmRatingEnumSQLBuilder = &struct {")
|
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) {
|
func TestGeneratorTemplate_Model_AddTags(t *testing.T) {
|
||||||
|
|
||||||
err := mysql2.Generate(
|
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) {
|
func TestGeneratorTemplate_Model_AddTags(t *testing.T) {
|
||||||
|
|
||||||
err := postgres.Generate(
|
err := postgres.Generate(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue