Module: Dato::Railties::ControllerRuntime

Extended by:
ActiveSupport::Concern
Defined in:
lib/dato/railties/controller_runtime.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#execute_dato_query(query, preview: false) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/dato/railties/controller_runtime.rb', line 6

def execute_dato_query(query, preview: false)
  client = Dato::Client.new(preview: preview)
  return client.execute!(query) if preview

  key = "#{Digest::MD5.hexdigest(query.to_gql)}-query-#{preview}"
  Dato::Cache.fetch(key) do
    client.execute!(query)
  end
end

#execute_dato_query!(query, preview: false) ⇒ Object



16
17
18
19
20
21
# File 'lib/dato/railties/controller_runtime.rb', line 16

def execute_dato_query!(query, preview: false)
  response = execute_dato_query(query, preview: preview)
  raise(InvalidGraphqlQuery, response.errors.first.message) if response.errors&.any?

  response
end