class GraphQL::PersistedQueries::Resolver

Fetches or stores query string in the storage

Public Class Methods

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

Public Instance Methods

resolve(query_string) click to toggle source
# File lib/graphql/persisted_queries/resolver.rb, line 14
def resolve(query_string)
  return query_string if hash.nil?

  if query_string
    persist_query(query_string)
  else
    query_string = with_error_handling { @schema.persisted_query_store.fetch_query(hash) }
    raise GraphQL::PersistedQueries::NotFound if query_string.nil?
  end

  query_string
end

Private Instance Methods

persist_query(query_string) click to toggle source
# File lib/graphql/persisted_queries/resolver.rb, line 29
def persist_query(query_string)
  validate_hash!(query_string)

  with_error_handling { @schema.persisted_query_store.save_query(hash, query_string) }
end