From f6be710743f6640d43c58dc73b5a6ddef72e2f7c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 16 Feb 2017 10:29:05 +0800 Subject: [PATCH] optimization for team get repos --- models/org_team.go | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/models/org_team.go b/models/org_team.go index d9ad0ba28f899..9ce08ae731c7f 100644 --- a/models/org_team.go +++ b/models/org_team.go @@ -37,22 +37,8 @@ func (t *Team) IsMember(userID int64) bool { } func (t *Team) getRepositories(e Engine) (err error) { - teamRepos := make([]*TeamRepo, 0, t.NumRepos) - if err = x. - Where("team_id=?", t.ID). - Find(&teamRepos); err != nil { - return fmt.Errorf("get team-repos: %v", err) - } - - t.Repos = make([]*Repository, 0, len(teamRepos)) - for i := range teamRepos { - repo, err := getRepositoryByID(e, teamRepos[i].RepoID) - if err != nil { - return fmt.Errorf("getRepositoryById(%d): %v", teamRepos[i].RepoID, err) - } - t.Repos = append(t.Repos, repo) - } - return nil + return e.Join("INNER", "team_repo", "repository.id = team_repo.repo_id"). + Where("team_repo.team_id=?", t.ID).Find(&t.Repos) } // GetRepositories returns all repositories in team of organization.