summaryrefslogtreecommitdiff
path: root/app/graphql/resolvers/issues_resolver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/issues_resolver.rb')
-rw-r--r--app/graphql/resolvers/issues_resolver.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/app/graphql/resolvers/issues_resolver.rb b/app/graphql/resolvers/issues_resolver.rb
index 3e61ba755d8..24009bf7e18 100644
--- a/app/graphql/resolvers/issues_resolver.rb
+++ b/app/graphql/resolvers/issues_resolver.rb
@@ -5,6 +5,8 @@ module Resolvers
prepend ::Issues::LookAheadPreloads
include ::Issues::SortArguments
+ NON_FILTER_ARGUMENTS = %i[sort lookahead].freeze
+
argument :state, Types::IssuableStateEnum,
required: false,
description: 'Current state of this issue.'
@@ -17,6 +19,14 @@ module Resolvers
::Preloaders::UserMaxAccessLevelInProjectsPreloader.new(projects, current_user).execute
end
+ def ready?(**args)
+ unless filter_provided?(args)
+ raise Gitlab::Graphql::Errors::ArgumentError, _('You must provide at least one filter argument for this query')
+ end
+
+ super
+ end
+
def resolve_with_lookahead(**args)
return unless Feature.enabled?(:root_level_issues_query)
@@ -32,5 +42,11 @@ module Resolvers
issues
end
end
+
+ private
+
+ def filter_provided?(args)
+ args.except(*NON_FILTER_ARGUMENTS).values.any?(&:present?)
+ end
end
end