Module: ResolvesMergeRequests
- Extended by:
- ActiveSupport::Concern
- Includes:
- Gitlab::Utils::StrongMemoize, MergeRequests::LookAheadPreloads
- Defined in:
- app/graphql/resolvers/concerns/resolves_merge_requests.rb
Overview
Mixin for resolving merge requests. All arguments must be in forms that MergeRequestsFinder can handle, so you may need to use aliasing.
Constant Summary collapse
- NON_STABLE_CURSOR_SORTS =
%i[priority_asc priority_desc popularity_asc popularity_desc label_priority_asc label_priority_desc milestone_due_asc milestone_due_desc].freeze
Instance Method Summary collapse
Instance Method Details
#early_return ⇒ Object
51 52 53 |
# File 'app/graphql/resolvers/concerns/resolves_merge_requests.rb', line 51 def early_return [false, single? ? nil : MergeRequest.none] end |
#ready?(**args) ⇒ Boolean
45 46 47 48 49 |
# File 'app/graphql/resolvers/concerns/resolves_merge_requests.rb', line 45 def ready?(**args) return early_return if no_results_possible?(args) super end |
#resolve_with_lookahead(**args) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/graphql/resolvers/concerns/resolves_merge_requests.rb', line 19 def resolve_with_lookahead(**args) if args[:group_id] args[:group_id] = ::GitlabSchema.parse_gid(args[:group_id], expected_type: ::Group).model_id args[:include_subgroups] = true end validate_blob_path!(args) validate_closed_range!(args) rewrite_param_name(args, :reviewer_wildcard_id, :reviewer_id) rewrite_param_name(args, :assignee_wildcard_id, :assignee_id) mr_finder = MergeRequestsFinder.new(current_user, prepare_finder_params(args.compact)) finder = Gitlab::Graphql::Loaders::IssuableLoader.new(mr_parent, mr_finder) merge_requests = select_result(finder.batching_find_all { |query| apply_lookahead(query) }) 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(merge_requests) else merge_requests end end |