class Graphql::PersistedDocuments::Persister
Constants
- InvalidDocumentError
- MissingPersistValidatedDocumentError
- ParseError
Attributes
errors[R]
query_string[R]
Public Class Methods
new(query_string)
click to toggle source
# File lib/graphql/persisted_documents/persister.rb, line 10 def initialize(query_string) @query_string = query_string @errors = [] end
Public Instance Methods
persist()
click to toggle source
# File lib/graphql/persisted_documents/persister.rb, line 15 def persist document = GraphQL.parse(query_string) query = GraphQL::Query.new(config.schema, document: document) perform_validation(query) raise InvalidDocumentError unless errors.empty? user_persister = config.persist_validated_document return user_persister.call(document) if user_persister raise MissingPersistValidatedDocumentError rescue GraphQL::ParseError raise ParseError end
Private Instance Methods
config()
click to toggle source
# File lib/graphql/persisted_documents/persister.rb, line 38 def config PersistedDocuments.configuration end
perform_validation(query)
click to toggle source
# File lib/graphql/persisted_documents/persister.rb, line 32 def perform_validation(query) validation_result = validator.validate(query) validation_errors = validation_result[:errors] || [] @errors = validation_errors.map { |error| error["message"] } end
validator()
click to toggle source
# File lib/graphql/persisted_documents/persister.rb, line 42 def validator GraphQL::StaticValidation::Validator.new(schema: config.schema) end