} | } | ||||
// LoadRepositories loads issues' all repositories | // LoadRepositories loads issues' all repositories | ||||
func (issues IssueList) LoadRepositories(ctx context.Context) ([]*repo_model.Repository, error) { | |||||
func (issues IssueList) LoadRepositories(ctx context.Context) (repo_model.RepositoryList, error) { | |||||
if len(issues) == 0 { | if len(issues) == 0 { | ||||
return nil, nil | return nil, nil | ||||
} | } |
type AccessibleReposEnvironment interface { | type AccessibleReposEnvironment interface { | ||||
CountRepos() (int64, error) | CountRepos() (int64, error) | ||||
RepoIDs(page, pageSize int) ([]int64, error) | RepoIDs(page, pageSize int) ([]int64, error) | ||||
Repos(page, pageSize int) ([]*repo_model.Repository, error) | |||||
MirrorRepos() ([]*repo_model.Repository, error) | |||||
Repos(page, pageSize int) (repo_model.RepositoryList, error) | |||||
MirrorRepos() (repo_model.RepositoryList, error) | |||||
AddKeyword(keyword string) | AddKeyword(keyword string) | ||||
SetSort(db.SearchOrderBy) | SetSort(db.SearchOrderBy) | ||||
} | } | ||||
Find(&repoIDs) | Find(&repoIDs) | ||||
} | } | ||||
func (env *accessibleReposEnv) Repos(page, pageSize int) ([]*repo_model.Repository, error) { | |||||
func (env *accessibleReposEnv) Repos(page, pageSize int) (repo_model.RepositoryList, error) { | |||||
repoIDs, err := env.RepoIDs(page, pageSize) | repoIDs, err := env.RepoIDs(page, pageSize) | ||||
if err != nil { | if err != nil { | ||||
return nil, fmt.Errorf("GetUserRepositoryIDs: %w", err) | return nil, fmt.Errorf("GetUserRepositoryIDs: %w", err) | ||||
Find(&repoIDs) | Find(&repoIDs) | ||||
} | } | ||||
func (env *accessibleReposEnv) MirrorRepos() ([]*repo_model.Repository, error) { | |||||
func (env *accessibleReposEnv) MirrorRepos() (repo_model.RepositoryList, error) { | |||||
repoIDs, err := env.MirrorRepoIDs() | repoIDs, err := env.MirrorRepoIDs() | ||||
if err != nil { | if err != nil { | ||||
return nil, fmt.Errorf("MirrorRepoIDs: %w", err) | return nil, fmt.Errorf("MirrorRepoIDs: %w", err) |
) | ) | ||||
// GetOrgRepositories get repos belonging to the given organization | // GetOrgRepositories get repos belonging to the given organization | ||||
func GetOrgRepositories(ctx context.Context, orgID int64) ([]*repo_model.Repository, error) { | |||||
func GetOrgRepositories(ctx context.Context, orgID int64) (repo_model.RepositoryList, error) { | |||||
var orgRepos []*repo_model.Repository | var orgRepos []*repo_model.Repository | ||||
return orgRepos, db.GetEngine(ctx).Where("owner_id = ?", orgID).Find(&orgRepos) | return orgRepos, db.GetEngine(ctx).Where("owner_id = ?", orgID).Find(&orgRepos) | ||||
} | } |
assert.NoError(t, err) | assert.NoError(t, err) | ||||
repos, err := env.Repos(1, 100) | repos, err := env.Repos(1, 100) | ||||
assert.NoError(t, err) | assert.NoError(t, err) | ||||
expectedRepos := make([]*repo_model.Repository, len(expectedRepoIDs)) | |||||
expectedRepos := make(repo_model.RepositoryList, len(expectedRepoIDs)) | |||||
for i, repoID := range expectedRepoIDs { | for i, repoID := range expectedRepoIDs { | ||||
expectedRepos[i] = unittest.AssertExistsAndLoadBean(t, | expectedRepos[i] = unittest.AssertExistsAndLoadBean(t, | ||||
&repo_model.Repository{ID: repoID}) | &repo_model.Repository{ID: repoID}) | ||||
assert.NoError(t, err) | assert.NoError(t, err) | ||||
repos, err := env.MirrorRepos() | repos, err := env.MirrorRepos() | ||||
assert.NoError(t, err) | assert.NoError(t, err) | ||||
expectedRepos := make([]*repo_model.Repository, len(expectedRepoIDs)) | |||||
expectedRepos := make(repo_model.RepositoryList, len(expectedRepoIDs)) | |||||
for i, repoID := range expectedRepoIDs { | for i, repoID := range expectedRepoIDs { | ||||
expectedRepos[i] = unittest.AssertExistsAndLoadBean(t, | expectedRepos[i] = unittest.AssertExistsAndLoadBean(t, | ||||
&repo_model.Repository{ID: repoID}) | &repo_model.Repository{ID: repoID}) |
} | } | ||||
// GetRepositories returns paginated repositories in team of organization. | // GetRepositories returns paginated repositories in team of organization. | ||||
func GetTeamRepositories(ctx context.Context, opts *SearchTeamRepoOptions) ([]*repo_model.Repository, error) { | |||||
func GetTeamRepositories(ctx context.Context, opts *SearchTeamRepoOptions) (repo_model.RepositoryList, error) { | |||||
sess := db.GetEngine(ctx) | sess := db.GetEngine(ctx) | ||||
if opts.TeamID > 0 { | if opts.TeamID > 0 { | ||||
sess = sess.In("id", | sess = sess.In("id", |
return nil | return nil | ||||
} | } | ||||
func gatherMissingRepoRecords(ctx context.Context) ([]*repo_model.Repository, error) { | |||||
func gatherMissingRepoRecords(ctx context.Context) (repo_model.RepositoryList, error) { | |||||
repos := make([]*repo_model.Repository, 0, 10) | repos := make([]*repo_model.Repository, 0, 10) | ||||
if err := db.Iterate( | if err := db.Iterate( | ||||
ctx, | ctx, |