move m365 changes to another PR
This commit is contained in:
parent
e3256869f8
commit
f505ee4643
@ -312,86 +312,6 @@ func SitesMap(
|
|||||||
return idname.NewCache(itn), nil
|
return idname.NewCache(itn), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
// Teams
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Team is the minimal information required to identify and display a M365 Team.
|
|
||||||
type Team struct {
|
|
||||||
ID string
|
|
||||||
|
|
||||||
// DisplayName is the human-readable name of the team. Normally the plaintext name that the
|
|
||||||
// user provided when they created the team or the updated name if it was changed.
|
|
||||||
// Ex: displayName: "Testing Team"
|
|
||||||
DisplayName string
|
|
||||||
}
|
|
||||||
|
|
||||||
// TeamsCompat returns a list of teams in the specified M365 tenant.
|
|
||||||
func TeamsCompat(ctx context.Context, acct account.Account) ([]*Team, error) {
|
|
||||||
errs := fault.New(true)
|
|
||||||
|
|
||||||
us, err := Teams(ctx, acct, errs)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return us, errs.Failure()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Teams returns a list of teams in the specified M365 tenant
|
|
||||||
func Teams(ctx context.Context, acct account.Account, errs *fault.Bus) ([]*Team, error) {
|
|
||||||
ac, err := makeAC(ctx, acct, path.TeamsService)
|
|
||||||
if err != nil {
|
|
||||||
return nil, clues.Stack(err).WithClues(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
return getAllTeams(ctx, ac.Groups())
|
|
||||||
}
|
|
||||||
|
|
||||||
// parseUser extracts information from `models.Userable` we care about
|
|
||||||
func parseTeam(item models.Groupable) (*Team, error) {
|
|
||||||
if item.GetDisplayName() == nil {
|
|
||||||
return nil, clues.New("Team missing display name").
|
|
||||||
With("Team ID", ptr.Val(item.GetId()))
|
|
||||||
}
|
|
||||||
|
|
||||||
u := &Team{
|
|
||||||
ID: ptr.Val(item.GetId()),
|
|
||||||
DisplayName: ptr.Val(item.GetDisplayName()),
|
|
||||||
}
|
|
||||||
|
|
||||||
return u, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type getAllGroupers interface {
|
|
||||||
GetAll(ctx context.Context, filterTeams bool, errs *fault.Bus) ([]models.Groupable, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getAllTeams(ctx context.Context, gas getAllGroupers) ([]*Team, error) {
|
|
||||||
teams, err := gas.GetAll(ctx, true, fault.New(true))
|
|
||||||
// TODO: check this. Label has to be changed
|
|
||||||
if err != nil {
|
|
||||||
if clues.HasLabel(err, graph.LabelsNoSharePointLicense) {
|
|
||||||
return nil, clues.Stack(graph.ErrServiceNotEnabled, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil, clues.Wrap(err, "retrieving teams")
|
|
||||||
}
|
|
||||||
|
|
||||||
ret := make([]*Team, 0, len(teams))
|
|
||||||
|
|
||||||
for _, team := range teams {
|
|
||||||
t, err := parseTeam(team)
|
|
||||||
if err != nil {
|
|
||||||
return nil, clues.Wrap(err, "parsing teams")
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = append(ret, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// helpers
|
// helpers
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user