Skip to content

Commit 232a6e0

Browse files
authored
Add data source pagenation to docker_org_members and docker_org_team_member (#87)
* fix: update ListOrgMembers to trim BaseURL from next URL * fix: enhance ListOrgTeamMembers to handle pagination and trim BaseURL from next URL
1 parent 0f60b9b commit 232a6e0

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

internal/hubclient/client_organization.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"encoding/json"
2222
"fmt"
23+
"strings"
2324
)
2425

2526
type Org struct {
@@ -182,7 +183,8 @@ func (c *Client) ListOrgMembers(ctx context.Context, orgName string) ([]OrgMembe
182183
members := org.Results
183184
for org.Next != "" {
184185
nextOrg := OrgMemberListResponse{}
185-
err := c.sendRequest(ctx, "GET", org.Next, nil, &org)
186+
nextURL := strings.TrimPrefix(org.Next, c.BaseURL)
187+
err := c.sendRequest(ctx, "GET", nextURL, nil, &nextOrg)
186188
if err != nil {
187189
return nil, err
188190
}
@@ -249,7 +251,24 @@ func (c *Client) AddOrgTeamMember(ctx context.Context, orgName string, teamName
249251
func (c *Client) ListOrgTeamMembers(ctx context.Context, orgName string, teamName string) (OrgTeamMembersResponse, error) {
250252
membersResponse := OrgTeamMembersResponse{}
251253
err := c.sendRequest(ctx, "GET", fmt.Sprintf("/orgs/%s/groups/%s/members/", orgName, teamName), nil, &membersResponse)
252-
return membersResponse, err
254+
if err != nil {
255+
return membersResponse, err
256+
}
257+
258+
members := membersResponse.Results
259+
for membersResponse.Next != "" {
260+
nextResponse := OrgTeamMembersResponse{}
261+
nextURL := strings.TrimPrefix(membersResponse.Next, c.BaseURL)
262+
err := c.sendRequest(ctx, "GET", nextURL, nil, &nextResponse)
263+
if err != nil {
264+
return membersResponse, err
265+
}
266+
members = append(members, nextResponse.Results...)
267+
membersResponse = nextResponse
268+
}
269+
270+
membersResponse.Results = members
271+
return membersResponse, nil
253272
}
254273

255274
func (c *Client) GetOrgSettingImageAccessManagement(ctx context.Context, orgName string) (OrgSettingImageAccessManagement, error) {

0 commit comments

Comments
 (0)