diff options
author | Dongqing Hu <sorra@outlook.com> | 2017-03-31 13:03:55 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-03-31 13:03:55 +0000 |
commit | b0ab0e4eff22ad35fcbad12c3feac6e8ac8b3822 (patch) | |
tree | 631e242fa529383e20921f8057f89be66f982f18 /app/controllers | |
parent | 53b21c1e8e27a284a8691a73276204a85694eeb8 (diff) | |
download | gitlab-ce-b0ab0e4eff22ad35fcbad12c3feac6e8ac8b3822.tar.gz |
Refactor SearchController#show
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/search_controller.rb | 40 |
1 files changed, 7 insertions, 33 deletions
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 612d69cf557..4a579601785 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -6,45 +6,19 @@ class SearchController < ApplicationController layout 'search' def show - if params[:project_id].present? - @project = Project.find_by(id: params[:project_id]) - @project = nil unless can?(current_user, :download_code, @project) - end + search_service = SearchService.new(current_user, params) - if params[:group_id].present? - @group = Group.find_by(id: params[:group_id]) - @group = nil unless can?(current_user, :read_group, @group) - end + @project = search_service.project + @group = search_service.group return if params[:search].blank? @search_term = params[:search] - @scope = params[:scope] - @show_snippets = params[:snippets].eql? 'true' - - @search_results = - if @project - unless %w(blobs notes issues merge_requests milestones wiki_blobs - commits).include?(@scope) - @scope = 'blobs' - end - - Search::ProjectService.new(@project, current_user, params).execute - elsif @show_snippets - unless %w(snippet_blobs snippet_titles).include?(@scope) - @scope = 'snippet_blobs' - end - - Search::SnippetService.new(current_user, params).execute - else - unless %w(projects issues merge_requests milestones).include?(@scope) - @scope = 'projects' - end - Search::GlobalService.new(current_user, params).execute - end - - @search_objects = @search_results.objects(@scope, params[:page]) + @scope = search_service.scope + @show_snippets = search_service.show_snippets? + @search_results = search_service.search_results + @search_objects = search_service.search_objects check_single_commit_result end |