MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / ListMembers

Method ListMembers

app/cli/pkg/action/membership_list.go:91–135  ·  view source on GitHub ↗

ListMembers lists the members of an organization with pagination and optional filters.

(ctx context.Context, page int, pageSize int, opts *ListMembersOpts)

Source from the content-addressed store, hash-verified

89
90// ListMembers lists the members of an organization with pagination and optional filters.
91func (action *MembershipList) ListMembers(ctx context.Context, page int, pageSize int, opts *ListMembersOpts) (*ListMembershipResult, error) {
92 if page < 1 {
93 return nil, fmt.Errorf("page must be greater or equal to 1")
94 }
95 if pageSize < 1 {
96 return nil, fmt.Errorf("page-size must be greater or equal to 1")
97 }
98
99 client := pb.NewOrganizationServiceClient(action.cfg.CPConnection)
100 req := &pb.OrganizationServiceListMembershipsRequest{
101 MembershipId: opts.MembershipID,
102 Name: opts.Name,
103 Email: opts.Email,
104 Pagination: &pb.OffsetPaginationRequest{
105 Page: int32(page),
106 PageSize: int32(pageSize),
107 },
108 }
109
110 // If a role is specified, convert it to the protobuf enum
111 if opts.Role != nil {
112 casted := stringToPbRole(Role(*opts.Role))
113 req.Role = &casted
114 }
115
116 resp, err := client.ListMemberships(ctx, req)
117 if err != nil {
118 return nil, err
119 }
120
121 result := make([]*MembershipItem, 0, len(resp.Result))
122 for _, p := range resp.Result {
123 result = append(result, pbMembershipItemToAction(p))
124 }
125
126 return &ListMembershipResult{
127 Memberships: result,
128 PaginationMeta: &OffsetPagination{
129 Page: int(resp.GetPagination().GetPage()),
130 PageSize: int(resp.GetPagination().GetPageSize()),
131 TotalPages: int(resp.GetPagination().GetTotalPages()),
132 TotalCount: int(resp.GetPagination().GetTotalCount()),
133 },
134 }, nil
135}
136
137func pbOrgItemToAction(in *pb.OrgItem) *OrgItem {
138 i := &OrgItem{

Callers

nothing calls this directly

Calls 9

ListMembershipsMethod · 0.95
stringToPbRoleFunction · 0.85
pbMembershipItemToActionFunction · 0.85
GetTotalPagesMethod · 0.80
GetTotalCountMethod · 0.80
RoleTypeAlias · 0.70
GetPageMethod · 0.45
GetPaginationMethod · 0.45
GetPageSizeMethod · 0.45

Tested by

no test coverage detected