@@ -20,7 +20,6 @@ import (
2020 "context"
2121 "encoding/json"
2222 "fmt"
23- "strings"
2423)
2524
2625type Org struct {
@@ -185,21 +184,19 @@ func (c *Client) GetOrg(ctx context.Context, orgName string) (Org, error) {
185184}
186185
187186func (c * Client ) ListOrgMembers (ctx context.Context , orgName string ) ([]OrgMember , error ) {
188- org := OrgMemberListResponse {}
189- err := c .sendRequest (ctx , "GET" , fmt .Sprintf ("/orgs/%s/members" , orgName ), nil , & org )
190- if err != nil {
191- return nil , err
192- }
193- members := org .Results
194- for org .Next != "" {
195- nextOrg := OrgMemberListResponse {}
196- nextURL := strings .TrimPrefix (org .Next , c .BaseURL )
197- err := c .sendRequest (ctx , "GET" , nextURL , nil , & nextOrg )
198- if err != nil {
187+ var members []OrgMember
188+ initialURL := fmt .Sprintf ("/orgs/%s/members" , orgName )
189+ err := c .paginate (ctx , initialURL , func (url string ) (interface {}, error ) {
190+ var page OrgMemberListResponse
191+ if err := c .sendRequest (ctx , "GET" , url , nil , & page ); err != nil {
199192 return nil , err
200193 }
201- members = append (members , nextOrg .Results ... )
202- org = nextOrg
194+
195+ members = append (members , page .Results ... )
196+ return page .Next , nil
197+ })
198+ if err != nil {
199+ return nil , err
203200 }
204201 return members , nil
205202}
@@ -258,27 +255,22 @@ func (c *Client) AddOrgTeamMember(ctx context.Context, orgName string, teamName
258255 return c .sendRequest (ctx , "POST" , fmt .Sprintf ("/orgs/%s/groups/%s/members/" , orgName , teamName ), memberRequestJSON , nil )
259256}
260257
261- func (c * Client ) ListOrgTeamMembers (ctx context.Context , orgName string , teamName string ) (OrgTeamMembersResponse , error ) {
262- membersResponse := OrgTeamMembersResponse {}
263- err := c .sendRequest (ctx , "GET" , fmt .Sprintf ("/orgs/%s/groups/%s/members/" , orgName , teamName ), nil , & membersResponse )
264- if err != nil {
265- return membersResponse , err
266- }
267-
268- members := membersResponse .Results
269- for membersResponse .Next != "" {
270- nextResponse := OrgTeamMembersResponse {}
271- nextURL := strings .TrimPrefix (membersResponse .Next , c .BaseURL )
272- err := c .sendRequest (ctx , "GET" , nextURL , nil , & nextResponse )
273- if err != nil {
274- return membersResponse , err
258+ func (c * Client ) ListOrgTeamMembers (ctx context.Context , orgName string , teamName string ) ([]OrgTeamMember , error ) {
259+ var members []OrgTeamMember
260+ initialURL := fmt .Sprintf ("/orgs/%s/groups/%s/members/" , orgName , teamName )
261+ err := c .paginate (ctx , initialURL , func (url string ) (interface {}, error ) {
262+ var page OrgTeamMembersResponse
263+ if err := c .sendRequest (ctx , "GET" , url , nil , & page ); err != nil {
264+ return nil , err
275265 }
276- members = append (members , nextResponse .Results ... )
277- membersResponse = nextResponse
278- }
279266
280- membersResponse .Results = members
281- return membersResponse , nil
267+ members = append (members , page .Results ... )
268+ return page .Next , nil
269+ })
270+ if err != nil {
271+ return nil , err
272+ }
273+ return members , nil
282274}
283275
284276func (c * Client ) GetOrgSettingImageAccessManagement (ctx context.Context , orgName string ) (OrgSettingImageAccessManagement , error ) {
0 commit comments