From ede9118a9a0390318a66182491d45df80cbe3144 Mon Sep 17 00:00:00 2001 From: Carson Krueger Date: Mon, 4 Aug 2025 22:20:29 -0600 Subject: [PATCH] fix json tags for view models --- cmd/jet/main.go | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/cmd/jet/main.go b/cmd/jet/main.go index 2460d16..de12d5f 100644 --- a/cmd/jet/main.go +++ b/cmd/jet/main.go @@ -280,17 +280,7 @@ func genTemplate(dialect jet.Dialect, tablesFilter, viewsFilter, enumsFilter tem return template.DefaultTableModel(table). UseField(func(columnMetaData metadata.Column) template.TableModelField { defaultTableModelField := template.DefaultTableModelField(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))) - } - + tags := createModelTags(columnMetaData) return defaultTableModelField.UseTags(tags...) }) }). @@ -298,7 +288,12 @@ func genTemplate(dialect jet.Dialect, tablesFilter, viewsFilter, enumsFilter tem if shouldSkipTable(view, viewsFilter) { 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 { 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)) } + +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 +}