Browse Source

refactor: repo counts for SearchRepositoryByName func (#1045)

tags/v1.2.0-rc1
Bo-Yi Wu Lunny Xiao 9 years ago
parent
commit
575020655e
1 changed files with 16 additions and 10 deletions
  1. +16
    -10
      models/repo.go

+ 16
- 10
models/repo.go View File

@@ -1834,7 +1834,7 @@ type SearchRepoOptions struct {

// SearchRepositoryByName takes keyword and part of repository name to search,
// it returns results in given range and number of total results.
func SearchRepositoryByName(opts *SearchRepoOptions) (repos RepositoryList, _ int64, _ error) {
func SearchRepositoryByName(opts *SearchRepoOptions) (repos RepositoryList, count int64, err error) {
var (
sess *xorm.Session
cond = builder.NewCond()
@@ -1870,7 +1870,7 @@ func SearchRepositoryByName(opts *SearchRepoOptions) (repos RepositoryList, _ in
var ownerIds []int64

ownerIds = append(ownerIds, opts.Searcher.ID)
err := opts.Searcher.GetOrganizations(true)
err = opts.Searcher.GetOrganizations(true)

if err != nil {
return nil, 0, fmt.Errorf("Organization: %v", err)
@@ -1891,15 +1891,21 @@ func SearchRepositoryByName(opts *SearchRepoOptions) (repos RepositoryList, _ in
sess = x.
Join("INNER", "star", "star.repo_id = repository.id").
Where(cond)
count, err = x.
Join("INNER", "star", "star.repo_id = repository.id").
Where(cond).
Count(new(Repository))
if err != nil {
return nil, 0, fmt.Errorf("Count: %v", err)
}
} else {
sess = x.Where(cond)
}

var countSess xorm.Session
countSess = *sess
count, err := countSess.Count(new(Repository))
if err != nil {
return nil, 0, fmt.Errorf("Count: %v", err)
count, err = x.
Where(cond).
Count(new(Repository))
if err != nil {
return nil, 0, fmt.Errorf("Count: %v", err)
}
}

if err = sess.
@@ -1915,7 +1921,7 @@ func SearchRepositoryByName(opts *SearchRepoOptions) (repos RepositoryList, _ in
}
}

return repos, count, nil
return
}

// DeleteRepositoryArchives deletes all repositories' archives.


Loading…
Cancel
Save