summaryrefslogtreecommitdiff
path: root/app/graphql/resolvers/concerns/resolves_merge_requests.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/concerns/resolves_merge_requests.rb')
-rw-r--r--app/graphql/resolvers/concerns/resolves_merge_requests.rb28
1 files changed, 3 insertions, 25 deletions
diff --git a/app/graphql/resolvers/concerns/resolves_merge_requests.rb b/app/graphql/resolvers/concerns/resolves_merge_requests.rb
index a2140728a27..7ed88be52b9 100644
--- a/app/graphql/resolvers/concerns/resolves_merge_requests.rb
+++ b/app/graphql/resolvers/concerns/resolves_merge_requests.rb
@@ -11,16 +11,10 @@ module ResolvesMergeRequests
end
def resolve_with_lookahead(**args)
- args[:iids] = Array.wrap(args[:iids]) if args[:iids]
- args.compact!
+ mr_finder = MergeRequestsFinder.new(current_user, args.compact)
+ finder = Gitlab::Graphql::Loaders::IssuableLoader.new(project, mr_finder)
- if project && args.keys == [:iids]
- batch_load_merge_requests(args[:iids])
- else
- args[:project_id] ||= project
-
- apply_lookahead(MergeRequestsFinder.new(current_user, args).execute)
- end.then(&(single? ? :first : :itself))
+ select_result(finder.batching_find_all { |query| apply_lookahead(query) })
end
def ready?(**args)
@@ -35,22 +29,6 @@ module ResolvesMergeRequests
private
- def batch_load_merge_requests(iids)
- iids.map { |iid| batch_load(iid) }.select(&:itself) # .compact doesn't work on BatchLoader
- end
-
- # rubocop: disable CodeReuse/ActiveRecord
- def batch_load(iid)
- BatchLoader::GraphQL.for(iid.to_s).batch(key: project) do |iids, loader, args|
- query = args[:key].merge_requests.where(iid: iids)
-
- apply_lookahead(query).each do |mr|
- loader.call(mr.iid.to_s, mr)
- end
- end
- end
- # rubocop: enable CodeReuse/ActiveRecord
-
def unconditional_includes
[:target_project]
end