fix json tags for view models
This commit is contained in:
parent
9cc22af2dd
commit
ede9118a9a
1 changed files with 20 additions and 12 deletions
|
|
@ -280,17 +280,7 @@ func genTemplate(dialect jet.Dialect, tablesFilter, viewsFilter, enumsFilter tem
|
||||||
return template.DefaultTableModel(table).
|
return template.DefaultTableModel(table).
|
||||||
UseField(func(columnMetaData metadata.Column) template.TableModelField {
|
UseField(func(columnMetaData metadata.Column) template.TableModelField {
|
||||||
defaultTableModelField := template.DefaultTableModelField(columnMetaData)
|
defaultTableModelField := template.DefaultTableModelField(columnMetaData)
|
||||||
|
tags := createModelTags(columnMetaData)
|
||||||
var tags []string
|
|
||||||
switch modelJsonTag {
|
|
||||||
case "snake-case":
|
|
||||||
tags = append(tags, fmt.Sprintf(`json:"%s"`, columnMetaData.Name))
|
|
||||||
case "camel-case":
|
|
||||||
tags = append(tags, fmt.Sprintf(`json:"%s"`, snaker.SnakeToCamel(columnMetaData.Name, false)))
|
|
||||||
case "pascal-case":
|
|
||||||
tags = append(tags, fmt.Sprintf(`json:"%s"`, snaker.SnakeToCamel(columnMetaData.Name, true)))
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultTableModelField.UseTags(tags...)
|
return defaultTableModelField.UseTags(tags...)
|
||||||
})
|
})
|
||||||
}).
|
}).
|
||||||
|
|
@ -298,7 +288,12 @@ func genTemplate(dialect jet.Dialect, tablesFilter, viewsFilter, enumsFilter tem
|
||||||
if shouldSkipTable(view, viewsFilter) {
|
if shouldSkipTable(view, viewsFilter) {
|
||||||
return template.ViewModel{Skip: true}
|
return template.ViewModel{Skip: true}
|
||||||
}
|
}
|
||||||
return template.DefaultViewModel(view)
|
return template.DefaultViewModel(view).
|
||||||
|
UseField(func(columnMetaData metadata.Column) template.TableModelField {
|
||||||
|
defaultTableModelField := template.DefaultTableModelField(columnMetaData)
|
||||||
|
tags := createModelTags(columnMetaData)
|
||||||
|
return defaultTableModelField.UseTags(tags...)
|
||||||
|
})
|
||||||
}).
|
}).
|
||||||
UseEnum(func(enum metadata.Enum) template.EnumModel {
|
UseEnum(func(enum metadata.Enum) template.EnumModel {
|
||||||
if shouldSkipEnum(enum, enumsFilter) {
|
if shouldSkipEnum(enum, enumsFilter) {
|
||||||
|
|
@ -366,3 +361,16 @@ func shouldSkipEnum(enum metadata.Enum, filter templateFilter) bool {
|
||||||
|
|
||||||
return !strslice.Contains(filter.names, strings.ToLower(enum.Name))
|
return !strslice.Contains(filter.names, strings.ToLower(enum.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createModelTags(columnMetaData metadata.Column) []string {
|
||||||
|
var tags []string
|
||||||
|
switch modelJsonTag {
|
||||||
|
case "snake-case":
|
||||||
|
tags = append(tags, fmt.Sprintf(`json:"%s"`, columnMetaData.Name))
|
||||||
|
case "camel-case":
|
||||||
|
tags = append(tags, fmt.Sprintf(`json:"%s"`, snaker.SnakeToCamel(columnMetaData.Name, false)))
|
||||||
|
case "pascal-case":
|
||||||
|
tags = append(tags, fmt.Sprintf(`json:"%s"`, snaker.SnakeToCamel(columnMetaData.Name, true)))
|
||||||
|
}
|
||||||
|
return tags
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue