Class: Resolvers::Issues::BaseResolver

Inherits:
BaseResolver
  • Object
show all
Includes:
SearchArguments
Defined in:
app/graphql/resolvers/issues/base_resolver.rb

Overview

rubocop:disable Graphql/ResolverType

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseResolver

as_single, authorization, authorized?, before_connection_authorization, before_connection_authorization_block, calculate_ext_conn_complexity, calls_gitaly!, complexity, complexity_multiplier, #current_user, field_options, last, #object, #offset_pagination, requires_argument!, #select_result, single, #single?, single_definition_blocks, singular_type, when_single

Methods included from Gitlab::Utils::Override

#extended, extensions, #included, #method_added, #override, #prepended, #queue_verification, verify!

Class Method Details

.accept_release_tagObject



92
93
94
95
96
97
98
99
# File 'app/graphql/resolvers/issues/base_resolver.rb', line 92

def accept_release_tag
  argument :release_tag, [GraphQL::Types::String],
           required: false,
           description: "Release tag associated with the issue's milestone."
  argument :release_tag_wildcard_id, Types::ReleaseTagWildcardIdEnum,
           required: false,
           description: 'Filter issues by release tag ID wildcard.'
end

.resolver_complexity(args, child_complexity:) ⇒ Object



85
86
87
88
89
90
# File 'app/graphql/resolvers/issues/base_resolver.rb', line 85

def resolver_complexity(args, child_complexity:)
  complexity = super
  complexity += 2 if args[:labelName]

  complexity
end

Instance Method Details

#ready?(**args) ⇒ Boolean

Returns:

  • (Boolean)


102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'app/graphql/resolvers/issues/base_resolver.rb', line 102

def ready?(**args)
  if args[:or].present? && or_issuable_queries_disabled?
    raise ::Gitlab::Graphql::Errors::ArgumentError,
      "'or' arguments are only allowed when the `or_issuable_queries` feature flag is enabled."
  end

  args[:not] = args[:not].to_h if args[:not]
  args[:or] = args[:or].to_h if args[:or]

  params_not_mutually_exclusive(args, mutually_exclusive_assignee_username_args)
  params_not_mutually_exclusive(args, mutually_exclusive_milestone_args)
  params_not_mutually_exclusive(args.fetch(:not, {}), mutually_exclusive_milestone_args)
  params_not_mutually_exclusive(args, mutually_exclusive_release_tag_args)

  super
end