mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	improve FindProjects (#23085)
I found `FindAndCount` which can `Find` and `Count` in the same time Maybe it is better to use it in `FindProjects` --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		| @@ -217,16 +217,8 @@ func CountProjects(ctx context.Context, opts SearchOptions) (int64, error) { | |||||||
|  |  | ||||||
| // FindProjects returns a list of all projects that have been created in the repository | // FindProjects returns a list of all projects that have been created in the repository | ||||||
| func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, error) { | func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, error) { | ||||||
| 	e := db.GetEngine(ctx) | 	e := db.GetEngine(ctx).Where(opts.toConds()) | ||||||
| 	projects := make([]*Project, 0, setting.UI.IssuePagingNum) | 	projects := make([]*Project, 0, setting.UI.IssuePagingNum) | ||||||
| 	cond := opts.toConds() |  | ||||||
|  |  | ||||||
| 	count, err := e.Where(cond).Count(new(Project)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, 0, fmt.Errorf("Count: %w", err) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	e = e.Where(cond) |  | ||||||
|  |  | ||||||
| 	if opts.Page > 0 { | 	if opts.Page > 0 { | ||||||
| 		e = e.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum) | 		e = e.Limit(setting.UI.IssuePagingNum, (opts.Page-1)*setting.UI.IssuePagingNum) | ||||||
| @@ -243,7 +235,8 @@ func FindProjects(ctx context.Context, opts SearchOptions) ([]*Project, int64, e | |||||||
| 		e.Asc("created_unix") | 		e.Asc("created_unix") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return projects, count, e.Find(&projects) | 	count, err := e.FindAndCount(&projects) | ||||||
|  | 	return projects, count, err | ||||||
| } | } | ||||||
|  |  | ||||||
| // NewProject creates a new Project | // NewProject creates a new Project | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user