Module: Gitlab::Graphql::VersionFilter::IntroducedTracer
- Defined in:
- lib/gitlab/graphql/version_filter/introduced_tracer.rb
Overview
rubocop:disable Gitlab/ModuleWithInstanceVariables – we need to keep the original query for the fallback later
Instance Method Summary collapse
Instance Method Details
#execute_query(query:) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/gitlab/graphql/version_filter/introduced_tracer.rb', line 19 def execute_query(query:) return super unless @contain_future_fields # Use the original query during execution so we can fallback to null for the missing fields query.instance_variable_set(:@document, @original_query_document) query.send(:prepare_ast) # rubocop:disable GitlabSecurity/PublicSend -- we need to call private method query.context[:contain_future_fields] = @contain_future_fields super end |
#parse(query_string:) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/gitlab/graphql/version_filter/introduced_tracer.rb', line 8 def parse(query_string:) @original_query_document = super @contain_future_fields = false filter = Gitlab::Graphql::VersionFilter::FutureFieldFilter.new(@original_query_document.dup) filter.visit.tap do @contain_future_fields = filter.contain_future_fields end end |