Commit a1deed62 authored by Toon Claes's avatar Toon Claes

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.
parent 07250508
...@@ -261,19 +261,6 @@ module API ...@@ -261,19 +261,6 @@ module API
projects = projects.merge(current_user.owned_projects) projects = projects.merge(current_user.owned_projects)
end 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]) projects.reorder(params[:order_by] => params[:sort])
end end
......
...@@ -70,6 +70,10 @@ module API ...@@ -70,6 +70,10 @@ module API
def present_projects(options = {}) def present_projects(options = {})
finder_params = {} finder_params = {}
finder_params[:non_public] = true if params[:membership].present? 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 = ProjectsFinder.new(current_user: current_user, params: finder_params).execute
projects = filter_projects(projects) projects = filter_projects(projects)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment