Use ProjectFinder to filter the projects
Instead of trying to do the heavy lifting in the API itself, use the existing features of the ProjectFinder.
This commit is contained in:
parent
0725050802
commit
a1deed629e
2 changed files with 4 additions and 13 deletions
|
@ -261,19 +261,6 @@ module API
|
|||
projects = projects.merge(current_user.owned_projects)
|
||||
end
|
||||
|
||||
if params[:starred]
|
||||
projects = projects.merge(current_user.starred_projects)
|
||||
end
|
||||
|
||||
if params[:search].present?
|
||||
projects = projects.search(params[:search])
|
||||
end
|
||||
|
||||
if params[:visibility].present?
|
||||
projects = projects.search_by_visibility(params[:visibility])
|
||||
end
|
||||
|
||||
projects = projects.where(archived: params[:archived])
|
||||
projects.reorder(params[:order_by] => params[:sort])
|
||||
end
|
||||
|
||||
|
|
|
@ -70,6 +70,10 @@ module API
|
|||
def present_projects(options = {})
|
||||
finder_params = {}
|
||||
finder_params[:non_public] = true if params[:membership].present?
|
||||
finder_params[:starred] = true if params[:starred].present?
|
||||
finder_params[:visibility_level] = Gitlab::VisibilityLevel.level_value(params[:visibility]) if params[:visibility]
|
||||
finder_params[:archived] = params[:archived]
|
||||
finder_params[:search] = params[:search] if params[:search]
|
||||
|
||||
projects = ProjectsFinder.new(current_user: current_user, params: finder_params).execute
|
||||
projects = filter_projects(projects)
|
||||
|
|
Loading…
Reference in a new issue