Module: GraphQL::PersistedQueries::SchemaPatch

Defined in:
lib/graphql/persisted_queries/schema_patch.rb

Overview

Patches GraphQL::Schema to support persisted queries

Defined Under Namespace

Modules: MultiplexPatch

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#persisted_queries_tracing_enabled=(value) ⇒ Object (writeonly)

Sets the attribute persisted_queries_tracing_enabled

Parameters:

  • value

    the value to set the attribute persisted_queries_tracing_enabled to.



30
31
32
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 30

def persisted_queries_tracing_enabled=(value)
  @persisted_queries_tracing_enabled = value
end

Class Method Details

.patch(schema, compiled_queries) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 13

def patch(schema, compiled_queries)
  schema.singleton_class.prepend(SchemaPatch)

  return if compiled_queries

  schema.singleton_class.class_eval { alias_method :multiplex_original, :multiplex }
  schema.singleton_class.prepend(MultiplexPatch)
end

Instance Method Details

#configure_persisted_query_error_handler(handler) ⇒ Object



46
47
48
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 46

def configure_persisted_query_error_handler(handler)
  @persisted_query_error_handler = ErrorHandlers.build(handler)
end

#configure_persisted_query_store(store, **options) ⇒ Object



32
33
34
35
36
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 32

def configure_persisted_query_store(store, **options)
  @persisted_query_store = StoreAdapters.build(store, **options).tap do |adapter|
    adapter.tracers = tracers if persisted_queries_tracing_enabled?
  end
end

#hash_generator=(hash_generator) ⇒ Object



50
51
52
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 50

def hash_generator=(hash_generator)
  @hash_generator_proc = HashGeneratorBuilder.new(hash_generator).build
end

#hash_generator_procObject



54
55
56
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 54

def hash_generator_proc
  @hash_generator_proc ||= find_inherited_value(:hash_generator_proc)
end

#persisted_queries_tracing_enabled?Boolean

Returns:

  • (Boolean)


62
63
64
65
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 62

def persisted_queries_tracing_enabled?
  @persisted_queries_tracing_enabled ||=
    find_inherited_value(:persisted_queries_tracing_enabled?)
end

#persisted_query_error_handlerObject



42
43
44
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 42

def persisted_query_error_handler
  @persisted_query_error_handler ||= find_inherited_value(:persisted_query_error_handler)
end

#persisted_query_storeObject



38
39
40
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 38

def persisted_query_store
  @persisted_query_store ||= find_inherited_value(:persisted_query_store)
end

#tracer(name) ⇒ Object



67
68
69
70
71
72
73
74
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 67

def tracer(name)
  super.tap do
    # Since tracers can be set before *and* after our plugin hooks in,
    # we need to set tracers both when this plugin gets initialized
    # and any time a tracer is added after initialization
    persisted_query_store.tracers = tracers if persisted_queries_tracing_enabled?
  end
end

#verify_http_method=(verify) ⇒ Object



58
59
60
# File 'lib/graphql/persisted_queries/schema_patch.rb', line 58

def verify_http_method=(verify)
  query_analyzer(prepare_analyzer) if verify
end