fix: panic thrown when paths is wrapped in an array #4

When paths are wrapped in an array, the index throws an error because it's expecting them to be supplied as a map. Now paths can be wrapped or unwrapped, the index won't care.
This commit is contained in:
Dave Shanley
2022-11-07 08:09:22 -05:00
parent 5162b6bcf3
commit 1c98ae170a
3 changed files with 55 additions and 2 deletions

View File

@@ -1279,7 +1279,12 @@ func (index *SpecIndex) GetOperationCount() int {
for x, p := range index.pathsNode.Content {
if x%2 == 0 {
method := index.pathsNode.Content[x+1]
var method *yaml.Node
if utils.IsNodeArray(index.pathsNode) {
method = index.pathsNode.Content[x]
} else {
method = index.pathsNode.Content[x+1]
}
// extract methods for later use.
for y, m := range method.Content {
@@ -1339,7 +1344,12 @@ func (index *SpecIndex) GetOperationsParameterCount() int {
for x, pathItemNode := range index.pathsNode.Content {
if x%2 == 0 {
pathPropertyNode := index.pathsNode.Content[x+1]
var pathPropertyNode *yaml.Node
if utils.IsNodeArray(index.pathsNode) {
pathPropertyNode = index.pathsNode.Content[x]
} else {
pathPropertyNode = index.pathsNode.Content[x+1]
}
// extract methods for later use.
for y, prop := range pathPropertyNode.Content {