From 61f603cd8a74f9e4d59801bca2c3d1e44cdba304 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 29 Mar 2020 13:27:06 +0800 Subject: [PATCH] Create a new function to build search repository condition (#10858) Co-authored-by: Lauris BH Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> --- models/repo_list.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/models/repo_list.go b/models/repo_list.go index 6385de4b326..9c5597ee097 100644 --- a/models/repo_list.go +++ b/models/repo_list.go @@ -190,12 +190,8 @@ const ( SearchOrderByForksReverse SearchOrderBy = "num_forks DESC" ) -// SearchRepository returns repositories based on search options, -// it returns results in given range and number of total results. -func SearchRepository(opts *SearchRepoOptions) (RepositoryList, int64, error) { - if opts.Page <= 0 { - opts.Page = 1 - } +// SearchRepositoryCondition creates a query condition according search repository options +func SearchRepositoryCondition(opts *SearchRepoOptions) builder.Cond { var cond = builder.NewCond() if opts.Private { @@ -298,6 +294,17 @@ func SearchRepository(opts *SearchRepoOptions) (RepositoryList, int64, error) { if opts.Actor != nil && opts.Actor.IsRestricted { cond = cond.And(accessibleRepositoryCondition(opts.Actor)) } + return cond +} + +// SearchRepository returns repositories based on search options, +// it returns results in given range and number of total results. +func SearchRepository(opts *SearchRepoOptions) (RepositoryList, int64, error) { + cond := SearchRepositoryCondition(opts) + + if opts.Page <= 0 { + opts.Page = 1 + } if len(opts.OrderBy) == 0 { opts.OrderBy = SearchOrderByAlphabetically