allows cli users to limit the page size of delta queries by calling a new hidden flag: --delta-page-size. This also adds the control.Options struct to the api client, so that configurations such as this can be easily handed into, and used by, the client. --- #### Does this PR need a docs update or release note? - [x] ⛔ No #### Type of change - [x] 🌻 Feature #### Test Plan - [x] 💪 Manual - [x] ⚡ Unit test - [x] 💚 E2E
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package utils
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/alcionai/clues"
|
|
|
|
"github.com/alcionai/corso/src/internal/common/idname"
|
|
"github.com/alcionai/corso/src/pkg/account"
|
|
"github.com/alcionai/corso/src/pkg/control"
|
|
"github.com/alcionai/corso/src/pkg/fault"
|
|
"github.com/alcionai/corso/src/pkg/services/m365/api"
|
|
)
|
|
|
|
// UsersMap retrieves all users in the tenant and returns them in an idname.Cacher
|
|
func UsersMap(
|
|
ctx context.Context,
|
|
acct account.Account,
|
|
co control.Options,
|
|
errs *fault.Bus,
|
|
) (idname.Cacher, error) {
|
|
au, err := makeUserAPI(acct, co)
|
|
if err != nil {
|
|
return nil, clues.Wrap(err, "constructing a graph client")
|
|
}
|
|
|
|
return au.GetAllIDsAndNames(ctx, errs)
|
|
}
|
|
|
|
func makeUserAPI(acct account.Account, co control.Options) (api.Users, error) {
|
|
creds, err := acct.M365Config()
|
|
if err != nil {
|
|
return api.Users{}, clues.Wrap(err, "getting m365 account creds")
|
|
}
|
|
|
|
cli, err := api.NewClient(creds, co)
|
|
if err != nil {
|
|
return api.Users{}, clues.Wrap(err, "constructing api client")
|
|
}
|
|
|
|
return cli.Users(), nil
|
|
}
|