MCPcopy Create free account
hub / github.com/openclaw/gogcli / Run

Method Run

internal/cmd/admin_groups.go:124–201  ·  view source on GitHub ↗
(ctx context.Context, flags *RootFlags)

Source from the content-addressed store, hash-verified

122}
123
124func (c *AdminGroupsMembersListCmd) Run(ctx context.Context, flags *RootFlags) error {
125 u := ui.FromContext(ctx)
126 groupEmail := strings.TrimSpace(c.GroupEmail)
127 if groupEmail == "" {
128 return usage("group email required")
129 }
130 if c.Max <= 0 {
131 return usage("max must be > 0")
132 }
133 account, err := requireAdminAccount(flags)
134 if err != nil {
135 return err
136 }
137
138 svc, err := adminDirectoryService(ctx, account)
139 if err != nil {
140 return wrapAdminDirectoryError(err, account)
141 }
142
143 fetch := func(pageToken string) ([]*admin.Member, string, error) {
144 call := svc.Members.List(groupEmail).
145 MaxResults(c.Max).
146 Context(ctx)
147 if strings.TrimSpace(pageToken) != "" {
148 call = call.PageToken(pageToken)
149 }
150 resp, fetchErr := call.Do()
151 if fetchErr != nil {
152 return nil, "", wrapAdminDirectoryError(fetchErr, account)
153 }
154 return resp.Members, resp.NextPageToken, nil
155 }
156
157 members, nextPageToken, err := loadPagedItems(c.Page, c.All, fetch)
158 if err != nil {
159 return err
160 }
161
162 if outfmt.IsJSON(ctx) {
163 type item struct {
164 Email string `json:"email"`
165 Role string `json:"role"`
166 Type string `json:"type"`
167 }
168 items := make([]item, 0, len(members))
169 for _, member := range members {
170 if member == nil {
171 continue
172 }
173 items = append(items, item{
174 Email: member.Email,
175 Role: member.Role,
176 Type: member.Type,
177 })
178 }
179 if err := outfmt.WriteJSON(ctx, stdoutWriter(ctx), map[string]any{
180 "members": items,
181 "nextPageToken": nextPageToken,

Callers

nothing calls this directly

Calls 15

FromContextFunction · 0.92
IsJSONFunction · 0.92
WriteJSONFunction · 0.92
WriteTableFunction · 0.92
usageFunction · 0.85
requireAdminAccountFunction · 0.85
adminDirectoryServiceFunction · 0.85
wrapAdminDirectoryErrorFunction · 0.85
loadPagedItemsFunction · 0.85
stdoutWriterFunction · 0.85
failEmptyExitFunction · 0.85
nonNilAdminRowsFunction · 0.85

Tested by

no test coverage detected