summaryrefslogtreecommitdiff
path: root/lib/api/helpers.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2017-05-31 13:45:00 +0000
committerDouwe Maan <douwe@gitlab.com>2017-05-31 13:45:00 +0000
commit4ad85b22e25ab9b2d089fce7138f07c72c5fd5d6 (patch)
treec72428663addeeeef22c43ff71c6220ddfc7745b /lib/api/helpers.rb
parent2c288ee1fc32703eadcf54ec73baf9199720ae35 (diff)
parent1e5506d01619780da68fc51ada58188a9070255b (diff)
downloadgitlab-ce-4ad85b22e25ab9b2d089fce7138f07c72c5fd5d6.tar.gz
Merge branch 'tc-improve-project-api-perf' into 'master'
Improve /project API performance Closes #31855 and #31937 See merge request !11666
Diffstat (limited to 'lib/api/helpers.rb')
-rw-r--r--lib/api/helpers.rb34
1 files changed, 12 insertions, 22 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 226a7ddd50e..d61450f8258 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -256,31 +256,21 @@ module API
# project helpers
- def filter_projects(projects)
- if params[:membership]
- projects = projects.merge(current_user.authorized_projects)
- end
-
- if params[:owned]
- 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])
+ def reorder_projects(projects)
projects.reorder(params[:order_by] => params[:sort])
end
+ def project_finder_params
+ finder_params = {}
+ finder_params[:owned] = true if params[:owned].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]
+ finder_params
+ end
+
# file helpers
def uploaded_file(field, uploads_path)