Class: GraphQL::PersistedQueries::CompiledQueries::Resolver

Inherits:
Object
  • Object
show all
Includes:
ResolverHelpers
Defined in:
lib/graphql/persisted_queries/compiled_queries/resolver.rb

Overview

Fetches and persists compiled query

Instance Method Summary collapse

Methods included from ResolverHelpers

hash, validate_hash!, with_error_handling

Constructor Details

#initialize(schema, extensions) ⇒ Resolver

Returns a new instance of Resolver.



10
11
12
13
# File 'lib/graphql/persisted_queries/compiled_queries/resolver.rb', line 10

def initialize(schema, extensions)
  @schema = schema
  @extensions = extensions
end

Instance Method Details

#fetchObject



15
16
17
18
19
20
21
22
# File 'lib/graphql/persisted_queries/compiled_queries/resolver.rb', line 15

def fetch
  return if hash.nil?

  with_error_handling do
    compiled_query = @schema.persisted_query_store.fetch_query(hash, compiled_query: true)
    Marshal.load(compiled_query) if compiled_query # rubocop:disable Security/MarshalLoad
  end
end

#persist(query_string, compiled_query) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/graphql/persisted_queries/compiled_queries/resolver.rb', line 24

def persist(query_string, compiled_query)
  return if hash.nil?

  validate_hash!(query_string)

  with_error_handling do
    @schema.persisted_query_store.save_query(
      hash, Marshal.dump(compiled_query), compiled_query: true
    )
  end
end