Merge branch '12026-use-notes-finder-target-for-epics-ce' into 'master'

Use NotesFinder#target to find Epics

See merge request gitlab-org/gitlab-ce!31408
This commit is contained in:
Robert Speicher 2019-08-08 15:39:13 +00:00
commit 79bff3ee7a
1 changed files with 9 additions and 3 deletions

View File

@ -74,14 +74,14 @@ module API
end
def find_noteable(parent_type, parent_id, noteable_type, noteable_id)
params = params_by_noteable_type_and_id(noteable_type, noteable_id)
params = finder_params_by_noteable_type_and_id(noteable_type, noteable_id, parent_id)
noteable = NotesFinder.new(current_user, params.merge(project: user_project)).target
noteable = NotesFinder.new(current_user, params).target
noteable = nil unless can?(current_user, noteable_read_ability_name(noteable), noteable)
noteable || not_found!(noteable_type)
end
def params_by_noteable_type_and_id(type, id)
def finder_params_by_noteable_type_and_id(type, id, parent_id)
target_type = type.name.underscore
{ target_type: target_type }.tap do |h|
if %w(issue merge_request).include?(target_type)
@ -89,9 +89,15 @@ module API
else
h[:target_id] = id
end
add_parent_to_finder_params(h, type, parent_id)
end
end
def add_parent_to_finder_params(finder_params, noteable_type, parent_id)
finder_params[:project] = user_project
end
def noteable_parent(noteable)
public_send("user_#{noteable.class.parent_class.to_s.underscore}") # rubocop:disable GitlabSecurity/PublicSend
end