Refactor Gitlab::ProjectSearchResults

Previously this class would be given a project ID which was then used to
retrieve the corresponding Project object. However, in all cases the
Project object was already known as it was used to grab the ID to pass
to ProjectSearchResults. By just passing a Project instead we remove the
need for an extra query as well as the need for some other complexity
in this class.
This commit is contained in:
Yorick Peterse 2016-03-01 18:04:37 +01:00 committed by Robert Speicher
parent 42fde69d39
commit ec349dc1b6
2 changed files with 4 additions and 8 deletions

View file

@ -7,7 +7,7 @@ module Search
end
def execute
Gitlab::ProjectSearchResults.new(project.id,
Gitlab::ProjectSearchResults.new(project,
params[:search],
params[:repository_ref])
end

View file

@ -2,8 +2,8 @@ module Gitlab
class ProjectSearchResults < SearchResults
attr_reader :project, :repository_ref
def initialize(project_id, query, repository_ref = nil)
@project = Project.find(project_id)
def initialize(project, query, repository_ref = nil)
@project = project
@repository_ref = if repository_ref.present?
repository_ref
else
@ -73,7 +73,7 @@ module Gitlab
end
def notes
Note.where(project_id: limit_project_ids).user.search(query).order('updated_at DESC')
project.notes.user.search(query).order('updated_at DESC')
end
def commits
@ -83,9 +83,5 @@ module Gitlab
project.repository.find_commits_by_message(query).compact
end
end
def limit_project_ids
[project.id]
end
end
end