Class: Resolvers::IssuesResolver

Inherits:
Issues::BaseResolver
  • Object
show all
Extended by:
Gitlab::Utils::Override
Includes:
Issues::LookAheadPreloads, Issues::SortArguments
Defined in:
app/graphql/resolvers/issues_resolver.rb

Constant Summary collapse

NON_FILTER_ARGUMENTS =
%i[sort lookahead include_archived].freeze

Constants included from Issues::SortArguments

Issues::SortArguments::NON_STABLE_CURSOR_SORTS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Gitlab::Utils::Override

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

Class Method Details

.project_associationsObject



29
30
31
# File 'app/graphql/resolvers/issues_resolver.rb', line 29

def self.project_associations
  [:namespace]
end

Instance Method Details

#ready?(**args) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
# File 'app/graphql/resolvers/issues_resolver.rb', line 33

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

#resolve_with_lookahead(**args) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/graphql/resolvers/issues_resolver.rb', line 41

def resolve_with_lookahead(**args)
  issues = apply_lookahead(
    IssuesFinder.new(current_user, prepare_finder_params(args)).execute
  )

  if non_stable_cursor_sort?(args[:sort])
    # Certain complex sorts are not supported by the stable cursor pagination yet.
    # In these cases, we use offset pagination, so we return the correct connection.
    offset_pagination(issues)
  else
    issues
  end
end