Skip to content

Commit

Permalink
More pagination fixes (#28)
Browse files Browse the repository at this point in the history
  • Loading branch information
loganintech authored Dec 29, 2023
1 parent e2c3912 commit d489b2a
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 31 deletions.
12 changes: 1 addition & 11 deletions pkg/connector/account.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,17 +82,7 @@ func (o *accountResourceType) List(ctx context.Context, _ *v2.ResourceId, pt *pa
rv = append(rv, userResource)
}

hasNextPage := resp.NextToken != nil
if !hasNextPage {
return rv, "", nil, nil
}

nextPage, err := bag.NextToken(awsSdk.ToString(resp.NextToken))
if err != nil {
return nil, "", nil, fmt.Errorf("aws-connector: failed to marshal pagination bag: %w", err)
}

return rv, nextPage, nil, nil
return paginate(rv, bag, resp.NextToken)
}

func (o *accountResourceType) Entitlements(ctx context.Context, resource *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
Expand Down
14 changes: 2 additions & 12 deletions pkg/connector/iam_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,7 @@ func (o *iamGroupResourceType) List(ctx context.Context, _ *v2.ResourceId, pt *p
rv = append(rv, groupResource)
}

hasNextPage := resp.IsTruncated && resp.Marker != nil
if !hasNextPage {
return rv, "", nil, nil
}

nextPage, err := bag.NextToken(awsSdk.ToString(resp.Marker))
if err != nil {
return nil, "", nil, fmt.Errorf("aws-connector: failed to marshal pagination bag: %w", err)
}

return rv, nextPage, nil, nil
return paginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
}

func (o *iamGroupResourceType) Entitlements(ctx context.Context, resource *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
Expand Down Expand Up @@ -132,7 +122,7 @@ func (o *iamGroupResourceType) Grants(ctx context.Context, resource *v2.Resource
rv = append(rv, grant)
}

return PaginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
return paginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
}

func iamGroupBuilder(iamClient *iam.Client) *iamGroupResourceType {
Expand Down
2 changes: 1 addition & 1 deletion pkg/connector/iam_user.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func (o *iamUserResourceType) List(ctx context.Context, _ *v2.ResourceId, pt *pa
rv = append(rv, userResource)
}

return PaginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
return paginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
}

func (o *iamUserResourceType) Entitlements(_ context.Context, _ *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
Expand Down
6 changes: 3 additions & 3 deletions pkg/connector/pagination.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"github.com/conductorone/baton-sdk/pkg/pagination"
)

func Paginate[RV any](rv RV, bag *pagination.Bag, pageToken *string) (RV, string, annotations.Annotations, error) {
func paginate[RV any](rv RV, bag *pagination.Bag, pageToken *string) (RV, string, annotations.Annotations, error) {
if pageToken == nil || *pageToken == "" {
return rv, "", nil, nil
}
Expand All @@ -18,10 +18,10 @@ func Paginate[RV any](rv RV, bag *pagination.Bag, pageToken *string) (RV, string
return rv, token, nil, nil
}

func PaginateTruncation[RV any](rv RV, bag *pagination.Bag, pageToken *string, isTruncated bool) (RV, string, annotations.Annotations, error) {
func paginateTruncation[RV any](rv RV, bag *pagination.Bag, pageToken *string, isTruncated bool) (RV, string, annotations.Annotations, error) {
if !isTruncated {
return rv, "", nil, nil
}

return Paginate(rv, bag, pageToken)
return paginate(rv, bag, pageToken)
}
2 changes: 1 addition & 1 deletion pkg/connector/role.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func (o *roleResourceType) List(ctx context.Context, _ *v2.ResourceId, pt *pagin
rv = append(rv, roleResource)
}

return PaginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
return paginateTruncation(rv, bag, resp.Marker, resp.IsTruncated)
}

func (o *roleResourceType) Entitlements(_ context.Context, resource *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
Expand Down
4 changes: 2 additions & 2 deletions pkg/connector/sso_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ func (o *ssoGroupResourceType) List(ctx context.Context, _ *v2.ResourceId, pt *p
rv = append(rv, groupResource)
}

return Paginate(rv, bag, resp.NextToken)
return paginate(rv, bag, resp.NextToken)
}

func (o *ssoGroupResourceType) Entitlements(_ context.Context, resource *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
Expand Down Expand Up @@ -156,7 +156,7 @@ func (o *ssoGroupResourceType) Grants(ctx context.Context, resource *v2.Resource
rv = append(rv, grant)
}

rv, nextPage, anno, err := Paginate(rv, bag, resp.NextToken)
rv, nextPage, anno, err := paginate(rv, bag, resp.NextToken)
if err != nil {
return nil, "", nil, fmt.Errorf("aws-connector: failed to marshal pagination bag [%s]: %w", awsSdk.ToString(input.GroupId), err)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/connector/sso_user.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (o *ssoUserResourceType) List(ctx context.Context, _ *v2.ResourceId, pt *pa
rv = append(rv, userResource)
}

return Paginate(rv, bag, resp.NextToken)
return paginate(rv, bag, resp.NextToken)
}

func (o *ssoUserResourceType) Entitlements(_ context.Context, _ *v2.Resource, _ *pagination.Token) ([]*v2.Entitlement, string, annotations.Annotations, error) {
Expand Down

0 comments on commit d489b2a

Please sign in to comment.