From e6befd5efdbfc009913dab9b5a4408a23940c77b Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Tue, 14 Apr 2026 12:16:23 +0100 Subject: [PATCH] fix(discussion/client): simplify list query Signed-off-by: Babak K. Shandiz --- pkg/cmd/discussion/client/client_impl.go | 48 ++++++++++-------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/pkg/cmd/discussion/client/client_impl.go b/pkg/cmd/discussion/client/client_impl.go index 276009221..0e7b29f48 100644 --- a/pkg/cmd/discussion/client/client_impl.go +++ b/pkg/cmd/discussion/client/client_impl.go @@ -201,42 +201,32 @@ func (c *discussionClient) List(repo ghrepo.Interface, filters ListFilters, afte variables["answered"] = *filters.Answered } - // Build optional parameter declarations - paramParts := []string{ - "$owner: String!", - "$name: String!", - "$first: Int!", - "$after: String", - "$orderBy: DiscussionOrder", - } - argParts := []string{ - "first: $first", - "after: $after", - "orderBy: $orderBy", - } - if filters.CategoryID != "" { - paramParts = append(paramParts, "$categoryId: ID") - argParts = append(argParts, "categoryId: $categoryId") - } - if _, ok := variables["states"]; ok { - paramParts = append(paramParts, "$states: [DiscussionState!]") - argParts = append(argParts, "states: $states") - } - if filters.Answered != nil { - paramParts = append(paramParts, "$answered: Boolean") - argParts = append(argParts, "answered: $answered") - } - - query := fmt.Sprintf(`query DiscussionList(%s) { + query := fmt.Sprintf(`query DiscussionList( + $owner: String!, + $name: String!, + $first: Int!, + $after: String, + $orderBy: DiscussionOrder, + $categoryId: ID, + $states: [DiscussionState!], + $answered: Boolean + ) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled - discussions(%s) { + discussions( + first: $first, + after: $after, + orderBy: $orderBy, + categoryId: $categoryId, + states: $states, + answered: $answered + ) { totalCount pageInfo { hasNextPage endCursor } nodes { %s } } } - }`, strings.Join(paramParts, ", "), strings.Join(argParts, ", "), discussionFields) + }`, discussionFields) if after != "" { variables["after"] = after