Skip to content

Commit

Permalink
📖 Included comments for the bfs on patchPlanning (#1130)
Browse files Browse the repository at this point in the history
* [docs] Included comments for the bfs on patchPlanning

* Included comments on SearchDependenciesFromStartNode

Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com>

* Updated Based on Code Review

Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com>

* Removed extra return value

Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com>

* Updated based on code review

Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com>

---------

Signed-off-by: nathannaveen <42319948+nathannaveen@users.noreply.github.com>
  • Loading branch information
nathannaveen committed Aug 15, 2023
1 parent 021655e commit 463b800
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions pkg/guacanalytics/patchPlanning.go
Expand Up @@ -104,6 +104,17 @@ func SearchDependentsFromStartPackage(ctx context.Context, gqlClient graphql.Cli
q.queue = append(q.queue, startID)
}

err = q.bfsOfDependents(ctx, gqlClient, stopID, maxDepth)
if err != nil {
return nil, nil, err
}

return q.nodeMap, path, nil

}

// bfsOfDependents performs a breadth-first search on a graph to find dependencies
func (q *queueValues) bfsOfDependents(ctx context.Context, gqlClient graphql.Client, stopID *string, maxDepth int) error {
for len(q.queue) > 0 {
q.now = &q.queue[0]
q.queue = q.queue[1:]
Expand All @@ -117,26 +128,26 @@ func SearchDependentsFromStartPackage(ctx context.Context, gqlClient graphql.Cli
break
}

// model.Neighbors performs a GraphQL query to get the neighbor nodes of a given node.
neighborsResponse, err := model.Neighbors(ctx, gqlClient, *q.now, []model.Edge{})

if err != nil {
return nil, nil, fmt.Errorf("failed getting neighbors:%w", err)
return fmt.Errorf("failed getting neighbors:%w", err)
}

for _, neighbor := range neighborsResponse.Neighbors {
err = caseOnPredicates(ctx, gqlClient, &q, neighbor, q.nowNode.Type)
err = caseOnPredicates(ctx, gqlClient, q, neighbor, q.nowNode.Type)

if err != nil {
return nil, nil, err
return err
}
}

q.nowNode.Expanded = true
q.nodeMap[*q.now] = q.nowNode
}

return q.nodeMap, path, nil

return nil
}

func caseOnPredicates(ctx context.Context, gqlClient graphql.Client, q *queueValues, neighbor model.NeighborsNeighborsNode, nodeType NodeType) error {
Expand Down

0 comments on commit 463b800

Please sign in to comment.