Fix missing __typename checks and standalone var declarations

Add __typename to GraphQL queries and type guards in risk view,
risk list, user view, and user list commands to prevent silent
garbage output when a wrong node type ID is passed. Wrap
standalone var declarations in var () blocks per style guide.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2026-03-15 12:24:39 +01:00
parent 0438b8457d
commit 779f549530
7 changed files with 49 additions and 15 deletions

View File

@@ -26,6 +26,7 @@ import (
const listQuery = `
query($id: ID!, $first: Int, $after: CursorKey, $orderBy: ProfileOrder, $filter: ProfileFilter) {
node(id: $id) {
__typename
... on Organization {
profiles(first: $first, after: $after, orderBy: $orderBy, filter: $filter) {
totalCount
@@ -135,13 +136,20 @@ func NewCmdList(f *cmdutil.Factory) *cobra.Command {
flagLimit,
func(data json.RawMessage) (*api.Connection[profile], error) {
var resp struct {
Node struct {
Node *struct {
Typename string `json:"__typename"`
Profiles api.Connection[profile] `json:"profiles"`
} `json:"node"`
}
if err := json.Unmarshal(data, &resp); err != nil {
return nil, err
}
if resp.Node == nil {
return nil, fmt.Errorf("organization %s not found", flagOrg)
}
if resp.Node.Typename != "Organization" {
return nil, fmt.Errorf("expected Organization node, got %s", resp.Node.Typename)
}
return &resp.Node.Profiles, nil
},
)