diff options
Diffstat (limited to 'app/graphql/resolvers')
-rw-r--r-- | app/graphql/resolvers/issues_resolver.rb | 18 |
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 |