Skip to content

Commit 32f010c

Browse files
committed
updated traverseAPI to read all APIs
1 parent af70f5d commit 32f010c

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

internal/datasource/config/nginx_config_parser.go

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,6 @@ func (ncp *NginxConfigParser) crossplaneConfigTraverseAPIDetails(
388388
callback crossplaneTraverseCallbackAPIDetails,
389389
apiType string,
390390
) []*model.APIDetails {
391-
stop := false
392391
var responses []*model.APIDetails
393392

394393
for _, dir := range root.Parsed {
@@ -397,7 +396,7 @@ func (ncp *NginxConfigParser) crossplaneConfigTraverseAPIDetails(
397396
responses = append(responses, response...)
398397
continue
399398
}
400-
response = traverseAPIDetails(ctx, dir, callback, &stop, apiType)
399+
response = traverseAPIDetails(ctx, dir, callback, apiType)
401400
if response != nil {
402401
responses = append(responses, response...)
403402
}
@@ -410,26 +409,23 @@ func traverseAPIDetails(
410409
ctx context.Context,
411410
root *crossplane.Directive,
412411
callback crossplaneTraverseCallbackAPIDetails,
413-
stop *bool,
414412
apiType string,
415413
) (response []*model.APIDetails) {
416-
if *stop {
417-
return nil
418-
}
414+
var collectedResponses []*model.APIDetails
419415

420416
for _, child := range root.Block {
421-
response = callback(ctx, root, child, apiType)
422-
if len(response) > 0 {
423-
*stop = true
424-
return response
417+
currentResponse := callback(ctx, root, child, apiType)
418+
if len(currentResponse) > 0 {
419+
collectedResponses = append(collectedResponses, currentResponse...)
425420
}
426-
response = traverseAPIDetails(ctx, child, callback, stop, apiType)
427-
if *stop {
428-
return response
421+
422+
recursiveResponse := traverseAPIDetails(ctx, child, callback, apiType)
423+
if len(recursiveResponse) > 0 {
424+
collectedResponses = append(collectedResponses, recursiveResponse...)
429425
}
430426
}
431427

432-
return response
428+
return collectedResponses
433429
}
434430

435431
func (ncp *NginxConfigParser) formatMap(directive *crossplane.Directive) map[string]string {

0 commit comments

Comments
 (0)