Merge branch 'rc-api-use-search-globalservice-in-projects-search-api' into 'master'
API: Use Search::GlobalService in projects search API See merge request !6280
This commit is contained in:
commit
45afdbef0d
2 changed files with 4 additions and 12 deletions
|
@ -15,6 +15,7 @@ v 8.12.0 (unreleased)
|
|||
- Add font color contrast to external label in admin area (ClemMakesApps)
|
||||
- Change logo animation to CSS (ClemMakesApps)
|
||||
- Instructions for enabling Git packfile bitmaps !6104
|
||||
- Use Search::GlobalService.new in the `GET /projects/search/:query` endpoint
|
||||
- Fix pagination on user snippets page
|
||||
- Fix sorting of issues in API
|
||||
- Escape search term before passing it to Regexp.new !6241 (winniehell)
|
||||
|
|
|
@ -428,18 +428,9 @@ module API
|
|||
# Example Request:
|
||||
# GET /projects/search/:query
|
||||
get "/search/:query" do
|
||||
ids = current_user.authorized_projects.map(&:id)
|
||||
visibility_levels = [ Gitlab::VisibilityLevel::INTERNAL, Gitlab::VisibilityLevel::PUBLIC ]
|
||||
projects = Project.where("(id in (?) OR visibility_level in (?)) AND (name LIKE (?))", ids, visibility_levels, "%#{params[:query]}%")
|
||||
sort = params[:sort] == 'desc' ? 'desc' : 'asc'
|
||||
|
||||
projects = case params["order_by"]
|
||||
when 'id' then projects.order("id #{sort}")
|
||||
when 'name' then projects.order("name #{sort}")
|
||||
when 'created_at' then projects.order("created_at #{sort}")
|
||||
when 'last_activity_at' then projects.order("last_activity_at #{sort}")
|
||||
else projects
|
||||
end
|
||||
search_service = Search::GlobalService.new(current_user, search: params[:query]).execute
|
||||
projects = search_service.objects('projects', params[:page])
|
||||
projects = projects.reorder(project_order_by => project_sort)
|
||||
|
||||
present paginate(projects), with: Entities::Project
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue