diff --git a/src/pkg/services/m365/m365.go b/src/pkg/services/m365/m365.go index 1c7482b56..bb7c949ee 100644 --- a/src/pkg/services/m365/m365.go +++ b/src/pkg/services/m365/m365.go @@ -19,3 +19,23 @@ func Users(ctx context.Context, m365Account account.Account) ([]string, error) { return gc.GetUsers(), nil } + +// UserIDs returns a list of user IDs for the specified M365 tenant +// TODO: Implement paging support +func UserIDs(ctx context.Context, m365Account account.Account) ([]string, error) { + gc, err := connector.NewGraphConnector(ctx, m365Account) + if err != nil { + return nil, errors.Wrap(err, "could not initialize M365 graph connection") + } + + return gc.GetUsersIds(), nil +} + +func GetEmailAndUserID(ctx context.Context, m365Account account.Account) (map[string]string, error) { + gc, err := connector.NewGraphConnector(ctx, m365Account) + if err != nil { + return nil, errors.Wrap(err, "could not initialize M365 graph connection") + } + + return gc.Users, nil +} diff --git a/src/pkg/services/m365/m365_test.go b/src/pkg/services/m365/m365_test.go index 16b0c04f8..bf8d2a881 100644 --- a/src/pkg/services/m365/m365_test.go +++ b/src/pkg/services/m365/m365_test.go @@ -1,6 +1,7 @@ package m365 import ( + "context" "testing" "github.com/stretchr/testify/require" @@ -41,3 +42,23 @@ func (suite *M365IntegrationSuite) TestUsers() { require.NotNil(suite.T(), users) require.Greater(suite.T(), len(users), 0) } + +func (suite *M365IntegrationSuite) TestUserIDs() { + acct := tester.NewM365Account(suite.T()) + + ids, err := UserIDs(context.Background(), acct) + require.NoError(suite.T(), err) + + require.NotNil(suite.T(), ids) + require.Greater(suite.T(), len(ids), 0) +} + +func (suite *M365IntegrationSuite) TestGetEmailAndUserID() { + acct := tester.NewM365Account(suite.T()) + + ids, err := GetEmailAndUserID(context.Background(), acct) + require.NoError(suite.T(), err) + + require.NotNil(suite.T(), ids) + require.Greater(suite.T(), len(ids), 0) +}