@@ -2990,34 +2990,44 @@ func findWorkspaceMembersAndGroups(
29902990}
29912991}
29922992
2993+ var eg errgroup.Group
2994+
29932995// Fetch org members
29942996if fetchMembers {
2995- params := database.OrganizationMembersParams {
2996- OrganizationID :workspaces [0 ].OrganizationID ,
2997- }
2998- members ,err := api .Database .OrganizationMembers (ctx ,params )
2999- if err != nil && ! httpapi .Is404Error (err ) {
3000- return nil ,nil ,xerrors .Errorf ("get organization members: %w" ,err )
3001- }
3002- memberData = make (map [uuid.UUID ]database.OrganizationMembersRow ,len (members ))
3003- for _ ,member := range members {
3004- memberData [member .OrganizationMember .UserID ]= member
3005- }
2997+ eg .Go (func () (err error ) {
2998+ params := database.OrganizationMembersParams {
2999+ OrganizationID :workspaces [0 ].OrganizationID ,
3000+ }
3001+ members ,err := api .Database .OrganizationMembers (ctx ,params )
3002+ if err != nil && ! httpapi .Is404Error (err ) {
3003+ return xerrors .Errorf ("get organization members: %w" ,err )
3004+ }
3005+ memberData = make (map [uuid.UUID ]database.OrganizationMembersRow ,len (members ))
3006+ for _ ,member := range members {
3007+ memberData [member .OrganizationMember .UserID ]= member
3008+ }
3009+ return nil
3010+ })
30063011}
3007-
30083012// Fetch the groups
3009- if groupIDs != nil {
3010- groupIDs = slice .Unique (groupIDs )
3013+ if len (groupIDs )> 0 {
3014+ eg .Go (func () (err error ) {
3015+ groupIDs = slice .Unique (groupIDs )
30113016
3012- groupRows ,err := api .Database .GetGroups (ctx , database.GetGroupsParams {GroupIds :groupIDs })
3013- if err != nil && ! httpapi .Is404Error (err ) {
3014- return nil , nil , xerrors .Errorf ("get groups: %w" ,err )
3015- }
3017+ groupRows ,err := api .Database .GetGroups (ctx , database.GetGroupsParams {GroupIds :groupIDs })
3018+ if err != nil && ! httpapi .Is404Error (err ) {
3019+ return xerrors .Errorf ("get groups: %w" ,err )
3020+ }
30163021
3017- groupData = make (map [uuid.UUID ]database.Group ,len (groupIDs ))
3018- for _ ,groupRow := range groupRows {
3019- groupData [groupRow .Group .ID ]= groupRow .Group
3020- }
3022+ groupData = make (map [uuid.UUID ]database.Group ,len (groupIDs ))
3023+ for _ ,groupRow := range groupRows {
3024+ groupData [groupRow .Group .ID ]= groupRow .Group
3025+ }
3026+ return nil
3027+ })
3028+ }
3029+ if err := eg .Wait ();err != nil {
3030+ return nil ,nil ,err
30213031}
30223032
30233033return memberData ,groupData ,nil