handle omitted is true bools

This commit is contained in:
Paul Tyng
2022-10-19 20:31:28 -04:00
parent 84afde7dce
commit 887fae8168
4 changed files with 39 additions and 19 deletions

View File

@@ -4,9 +4,11 @@
{{ .FieldName }} {{ if .IsArray }}[]{{end}}{{ .FieldType }} `json:"{{ .JSONName }}{{ if .OmitEmpty }},omitempty{{ end }}"` {{ if .FieldValidation }}// {{ .FieldValidation }}{{ end }} {{- end }}
{{ define "field-customUnmarshalType" }}
{{- if eq .CustomUnmarshalType "" }}{{else}}
{{ .FieldName }} {{ if .IsArray }}[]{{end}}{{ .CustomUnmarshalType }} `json:"{{ .JSONName }}{{ if .OmitEmpty }}{{ end }}"`{{ end }} {{- end }}
{{ .FieldName }} {{ if .IsArray }}[]{{end}}{{ .CustomUnmarshalType }} `json:"{{ .JSONName }}"`{{ end }} {{- end }}
{{ define "typecast" }}
{{- if eq .CustomUnmarshalType "" }}{{else}}
{{- if ne .CustomUnmarshalFunc "" }}
dst.{{ .FieldName }}= {{ .CustomUnmarshalFunc }}(aux.{{ .FieldName }})
{{- else if eq .CustomUnmarshalType "" }}{{else}}
{{- if .IsArray }}
dst.{{ .FieldName }}= make([]{{ .FieldType }}, len(aux.{{ .FieldName }}))
for i, v := range aux.{{ .FieldName }} {

View File

@@ -108,6 +108,7 @@ type FieldInfo struct {
IsArray bool
Fields map[string]*FieldInfo
CustomUnmarshalType string
CustomUnmarshalFunc string
}
func NewResource(structName string, resourcePath string) *Resource {
@@ -346,6 +347,17 @@ func main() {
f.OmitEmpty = true
return nil
}
case "Network":
resource.FieldProcessor = func(name string, f *FieldInfo) error {
switch name {
case "InternetAccessEnabled", "IntraNetworkAccessEnabled":
if f.FieldType == "bool" {
f.CustomUnmarshalType = "*bool"
f.CustomUnmarshalFunc = "emptyBoolToTrue"
}
}
return nil
}
case "SettingGlobalAp":
resource.FieldProcessor = func(name string, f *FieldInfo) error {
if strings.HasPrefix(name, "6E") {