Class: Graphql::PersistedDocuments::PersistedDocumentsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/graphql/persisted_documents/persisted_documents_controller.rb

Instance Method Summary collapse

Instance Method Details

#persistObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/graphql/persisted_documents/persisted_documents_controller.rb', line 4

def persist
  document = params[:document]

  unless document
    render_errors(['Missing required argument document'], status: 422)
    return
  end

  persister = Persister.new(document)
  document_id = persister.persist

  render json: { document_id: document_id }, status: :ok

rescue Persister::ParseError
  render_errors(['Unable to parse document'], status: 422)
rescue Persister::InvalidDocumentError
  render_errors(persister.errors, status: 422)
rescue Persister::MissingPersistValidatedDocumentError
  render_errors(['persist_validated_document must be defined in config'])
end