class GraphQL::PersistedQueries::CompiledQueries::Resolver

Fetches and persists compiled query

Public Class Methods

new(schema, extensions) click to toggle source
# File lib/graphql/persisted_queries/compiled_queries/resolver.rb, line 10
def initialize(schema, extensions)
  @schema = schema
  @extensions = extensions
end

Public Instance Methods

fetch() click to toggle source
# 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) click to toggle source
# 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