summaryrefslogtreecommitdiff
path: root/app/graphql/resolvers/issue_status_counts_resolver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/issue_status_counts_resolver.rb')
-rw-r--r--app/graphql/resolvers/issue_status_counts_resolver.rb26
1 files changed, 19 insertions, 7 deletions
diff --git a/app/graphql/resolvers/issue_status_counts_resolver.rb b/app/graphql/resolvers/issue_status_counts_resolver.rb
index db5c91daac2..92cda77d717 100644
--- a/app/graphql/resolvers/issue_status_counts_resolver.rb
+++ b/app/graphql/resolvers/issue_status_counts_resolver.rb
@@ -1,17 +1,29 @@
# frozen_string_literal: true
module Resolvers
- class IssueStatusCountsResolver < BaseResolver
- prepend IssueResolverArguments
-
+ class IssueStatusCountsResolver < Issues::BaseResolver
type Types::IssueStatusCountsType, null: true
+
accept_release_tag
- extras [:lookahead]
+ def resolve(**args)
+ return Issue.none if resource_parent.nil?
+
+ finder = IssuesFinder.new(current_user, prepare_finder_params(args))
+ finder.parent_param = resource_parent
+
+ Gitlab::IssuablesCountForState.new(finder, resource_parent)
+ end
+
+ private
- def continue_issue_resolve(parent, finder, **args)
- finder.parent_param = parent
- apply_lookahead(Gitlab::IssuablesCountForState.new(finder, parent))
+ def resource_parent
+ # The project could have been loaded in batch by `BatchLoader`.
+ # At this point we need the `id` of the project to query for issues, so
+ # make sure it's loaded and not `nil` before continuing.
+ strong_memoize(:resource_parent) do
+ object.respond_to?(:sync) ? object.sync : object
+ end
end
end
end