diff --git a/scripts/generate_db_helpers.go b/scripts/generate_db_helpers.go index 5746457e68bcec77f71b69f5eba624437b2d01ff_c2NyaXB0cy9nZW5lcmF0ZV9kYl9oZWxwZXJzLmdv..2defe6a5a126875beea9790225e82d2b802e01ab_c2NyaXB0cy9nZW5lcmF0ZV9kYl9oZWxwZXJzLmdv 100644 --- a/scripts/generate_db_helpers.go +++ b/scripts/generate_db_helpers.go @@ -275,6 +275,7 @@ PKeyColumn() string Columns(withPKey bool) []string Values(columns ...string) []interface{} + ValuesMap(columns ...string) map[string]interface{} } type TableSchema interface { @@ -483,6 +484,20 @@ return values } +// ValuesMap returns the values map for a list of columns. If a column does not +// exits, the corresponding value is left empty +func (s {{.Name}}) ValuesMap(columns ...string) map[string]interface{} { + values := make(map[string]interface{}) + for _, column := range columns { + switch column { + {{- range .Fields}} + case "{{.Column}}": + values["{{.Column}}"] = s.{{.Name}} + {{- end}} + } + } + return values +} {{- if .HasTable}} func New{{.Name}}TableSchema() *{{.Name}}TableSchema { diff --git a/server.yaml b/server.yaml index 5746457e68bcec77f71b69f5eba624437b2d01ff_c2VydmVyLnlhbWw=..2defe6a5a126875beea9790225e82d2b802e01ab_c2VydmVyLnlhbWw= 100644 --- a/server.yaml +++ b/server.yaml @@ -95,6 +95,11 @@ source: asset:serverOperation target: "{{ if gt (len .Tags) 0 }}{{ joinFilePath .Target .ServerPackage .APIPackage .Package }}{{ else }}{{ joinFilePath .Target .ServerPackage .Package }}{{ end }}" file_name: "{{ (snakize (pascalize .Name)) }}.go" + - name: urlbuilder + source: "asset:serverUrlbuilder" + target: "{{ if .UseTags }}{{ joinFilePath .Target (toPackagePath .ServerPackage) (toPackagePath .APIPackage) (toPackagePath .Package) }}{{ else }}{{ joinFilePath .Target (toPackagePath .ServerPackage) (toPackagePath .Package) }}{{ end }}" + file_name: "{{ (snakize (pascalize .Name)) }}_urlbuilder.go" + # custom templates - name: prometheus