From a4a9370db8f438f89c7f8b35920313dc4bb2d2c0 Mon Sep 17 00:00:00 2001 From: Kellen Hart Date: Wed, 8 May 2024 23:56:58 -0700 Subject: [PATCH] render empty oauth scopes see https://github.com/pb33f/libopenapi/issues/289 --- datamodel/high/node_builder.go | 2 +- datamodel/high/v3/oauth_flow.go | 2 +- orderedmap/builder.go | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/datamodel/high/node_builder.go b/datamodel/high/node_builder.go index 535c53b7..3b064a86 100644 --- a/datamodel/high/node_builder.go +++ b/datamodel/high/node_builder.go @@ -429,7 +429,7 @@ func (n *NodeBuilder) AddYAMLNode(parent *yaml.Node, entry *nodes.NodeEntry) *ya } p := m.ToYamlNode(n, l) - if len(p.Content) > 0 { + if p.Content != nil { valueNode = p } } else if r, ok := value.(Renderable); ok { diff --git a/datamodel/high/v3/oauth_flow.go b/datamodel/high/v3/oauth_flow.go index ab0233e1..0563b06e 100644 --- a/datamodel/high/v3/oauth_flow.go +++ b/datamodel/high/v3/oauth_flow.go @@ -16,7 +16,7 @@ type OAuthFlow struct { AuthorizationUrl string `json:"authorizationUrl,omitempty" yaml:"authorizationUrl,omitempty"` TokenUrl string `json:"tokenUrl,omitempty" yaml:"tokenUrl,omitempty"` RefreshUrl string `json:"refreshUrl,omitempty" yaml:"refreshUrl,omitempty"` - Scopes *orderedmap.Map[string, string] `json:"scopes,omitempty" yaml:"scopes,omitempty"` + Scopes *orderedmap.Map[string, string] `json:"scopes,renderZero" yaml:"scopes,renderZero"` Extensions *orderedmap.Map[string, *yaml.Node] `json:"-" yaml:"-"` low *low.OAuthFlow } diff --git a/orderedmap/builder.go b/orderedmap/builder.go index 339b4fd7..a76e711c 100644 --- a/orderedmap/builder.go +++ b/orderedmap/builder.go @@ -36,6 +36,9 @@ type findValueUntyped interface { // ToYamlNode converts the ordered map to a yaml node ready for marshalling. func (o *Map[K, V]) ToYamlNode(n NodeBuilder, l any) *yaml.Node { p := utils.CreateEmptyMapNode() + if o != nil { + p.Content = make([]*yaml.Node, 0) + } var vn *yaml.Node