Skip to content

Commit 0642cb3

Browse files
authored
Small opitimization for getUserTeams (#954)
* Small opitimization for getUserTeams * more compact
1 parent 134f3e6 commit 0642cb3

File tree

1 file changed

+6
-21
lines changed

1 file changed

+6
-21
lines changed

models/org_team.go

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -438,27 +438,12 @@ func GetTeamMembers(teamID int64) ([]*User, error) {
438438
return getTeamMembers(x, teamID)
439439
}
440440

441-
func getUserTeams(e Engine, orgID, userID int64) ([]*Team, error) {
442-
tus := make([]*TeamUser, 0, 5)
443-
if err := e.
444-
Where("uid=?", userID).
445-
And("org_id=?", orgID).
446-
Find(&tus); err != nil {
447-
return nil, err
448-
}
449-
450-
ts := make([]*Team, len(tus))
451-
for i, tu := range tus {
452-
t := new(Team)
453-
has, err := e.Id(tu.TeamID).Get(t)
454-
if err != nil {
455-
return nil, err
456-
} else if !has {
457-
return nil, ErrTeamNotExist
458-
}
459-
ts[i] = t
460-
}
461-
return ts, nil
441+
func getUserTeams(e Engine, orgID, userID int64) (teams []*Team, err error) {
442+
return teams, e.
443+
Join("INNER", "team_user", "team_user.team_id = team.id").
444+
Where("team.org_id = ?", orgID).
445+
And("team_user.uid=?", userID).
446+
Find(&teams)
462447
}
463448

464449
// GetUserTeams returns all teams that user belongs to in given organization.

0 commit comments

Comments
 (0)