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.rb18
1 files changed, 15 insertions, 3 deletions
diff --git a/app/graphql/resolvers/issues_resolver.rb b/app/graphql/resolvers/issues_resolver.rb
index bbf45efa33e..17e3e159a5b 100644
--- a/app/graphql/resolvers/issues_resolver.rb
+++ b/app/graphql/resolvers/issues_resolver.rb
@@ -2,14 +2,19 @@
module Resolvers
class IssuesResolver < Issues::BaseResolver
+ extend ::Gitlab::Utils::Override
prepend ::Issues::LookAheadPreloads
include ::Issues::SortArguments
- NON_FILTER_ARGUMENTS = %i[sort lookahead].freeze
+ NON_FILTER_ARGUMENTS = %i[sort lookahead include_archived].freeze
+ argument :include_archived, GraphQL::Types::Boolean,
+ required: false,
+ default_value: false,
+ description: 'Whether to include issues from archived projects. Defaults to `false`.'
argument :state, Types::IssuableStateEnum,
- required: false,
- description: 'Current state of this issue.'
+ required: false,
+ description: 'Current state of this issue.'
# see app/graphql/types/issue_connection.rb
type 'Types::IssueConnection', null: true
@@ -44,6 +49,13 @@ module Resolvers
private
+ override :prepare_finder_params
+ def prepare_finder_params(args)
+ super.tap do |prepared|
+ prepared[:non_archived] = !prepared.delete(:include_archived)
+ end
+ end
+
def filter_provided?(args)
args.except(*NON_FILTER_ARGUMENTS).values.any?(&:present?)
end