forked from NYANDEV/forgejo
Small optimization for getTeamIDs (#919)
* small optimization for getTeamIDs * rename getOrgTeamIDs to getUserTeamIDs and remove orderby
This commit is contained in:
parent
1ec6b1a258
commit
55ae78208e
2 changed files with 13 additions and 10 deletions
|
@ -30,6 +30,7 @@ import (
|
|||
|
||||
// Engine represents a xorm engine or session.
|
||||
type Engine interface {
|
||||
Table(tableNameOrBean interface{}) *xorm.Session
|
||||
Count(interface{}) (int64, error)
|
||||
Decr(column string, arg ...interface{}) *xorm.Session
|
||||
Delete(interface{}) (int64, error)
|
||||
|
|
|
@ -563,18 +563,20 @@ func (org *User) getUserTeams(e Engine, userID int64, cols ...string) ([]*Team,
|
|||
Find(&teams)
|
||||
}
|
||||
|
||||
func (org *User) getUserTeamIDs(e Engine, userID int64) ([]int64, error) {
|
||||
teamIDs := make([]int64, 0, org.NumTeams)
|
||||
return teamIDs, e.
|
||||
Table("team").
|
||||
Cols("team.id").
|
||||
Where("`team_user`.org_id = ?", org.ID).
|
||||
Join("INNER", "team_user", "`team_user`.team_id = team.id").
|
||||
And("`team_user`.uid = ?", userID).
|
||||
Find(&teamIDs)
|
||||
}
|
||||
|
||||
// GetUserTeamIDs returns of all team IDs of the organization that user is member of.
|
||||
func (org *User) GetUserTeamIDs(userID int64) ([]int64, error) {
|
||||
teams, err := org.getUserTeams(x, userID, "team.id")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("getUserTeams [%d]: %v", userID, err)
|
||||
}
|
||||
|
||||
teamIDs := make([]int64, len(teams))
|
||||
for i := range teams {
|
||||
teamIDs[i] = teams[i].ID
|
||||
}
|
||||
return teamIDs, nil
|
||||
return org.getUserTeamIDs(x, userID)
|
||||
}
|
||||
|
||||
// GetUserTeams returns all teams that belong to user,
|
||||
|
|
Loading…
Reference in a new issue