(cli *cli)
| 178 | } |
| 179 | |
| 180 | func searchUsersCmd(cli *cli) *cobra.Command { |
| 181 | var inputs struct { |
| 182 | query string |
| 183 | sort string |
| 184 | number int |
| 185 | picker bool |
| 186 | } |
| 187 | |
| 188 | cmd := &cobra.Command{ |
| 189 | Use: "search", |
| 190 | Args: cobra.NoArgs, |
| 191 | Short: "Search for users", |
| 192 | Long: "Search for users. To create one, run: `auth0 users create`.", |
| 193 | Example: ` auth0 users search |
| 194 | auth0 users search --query user_id:"<user-id>" |
| 195 | auth0 users search --query name:"Bob" --sort "name:1" |
| 196 | auth0 users search --query name:"Bob" --sort "name:1 --picker" |
| 197 | auth0 users search -q name:"Bob" -s "name:1" --number 200 |
| 198 | auth0 users search -q name:"Bob" -s "name:1" -n 200 -p --json |
| 199 | auth0 users search -q name:"Bob" -s "name:1" -n 200 --csv`, |
| 200 | RunE: func(cmd *cobra.Command, args []string) error { |
| 201 | if err := userQuery.Ask(cmd, &inputs.query, nil); err != nil { |
| 202 | return err |
| 203 | } |
| 204 | |
| 205 | queryParams := []management.RequestOption{ |
| 206 | management.Query(inputs.query), |
| 207 | } |
| 208 | if inputs.sort != "" { |
| 209 | queryParams = append(queryParams, management.Parameter("sort", inputs.sort)) |
| 210 | } |
| 211 | |
| 212 | if inputs.number < 1 || inputs.number > 1000 { |
| 213 | return fmt.Errorf("number flag invalid, please pass a number between 1 and 1000") |
| 214 | } |
| 215 | |
| 216 | list, err := getWithPagination( |
| 217 | inputs.number, |
| 218 | func(opts ...management.RequestOption) (result []interface{}, hasNext bool, err error) { |
| 219 | opts = append(opts, queryParams...) |
| 220 | |
| 221 | userList, err := cli.api.User.Search(cmd.Context(), opts...) |
| 222 | if err != nil { |
| 223 | return nil, false, err |
| 224 | } |
| 225 | |
| 226 | var output []interface{} |
| 227 | for _, user := range userList.Users { |
| 228 | output = append(output, user) |
| 229 | } |
| 230 | |
| 231 | return output, userList.HasNext(), nil |
| 232 | }, |
| 233 | ) |
| 234 | if err != nil { |
| 235 | return fmt.Errorf("failed to search for users: %w", err) |
| 236 | } |
| 237 |
no test coverage detected