Include project in BatchLoader key to prevent returning blobs for the wrong project
This commit is contained in:
parent
1fbda39c8d
commit
6c4f6d3773
|
@ -77,9 +77,15 @@ class Blob < SimpleDelegator
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.lazy(project, commit_id, path)
|
def self.lazy(project, commit_id, path)
|
||||||
BatchLoader.for(commit_id: commit_id, path: path).batch do |items, loader|
|
BatchLoader.for({ project: project, commit_id: commit_id, path: path }).batch do |items, loader|
|
||||||
project.repository.blobs_at(items.map(&:values)).each do |blob|
|
items_by_project = items.group_by { |i| i[:project] }
|
||||||
loader.call({ commit_id: blob.commit_id, path: blob.path }, blob) if blob
|
|
||||||
|
items_by_project.each do |project, items|
|
||||||
|
items = items.map { |i| i.values_at(:commit_id, :path) }
|
||||||
|
|
||||||
|
project.repository.blobs_at(items).each do |blob|
|
||||||
|
loader.call({ project: blob.project, commit_id: blob.commit_id, path: blob.path }, blob) if blob
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue