class Decidim::ComparativeStats::CachedHTTPAdapter

Public Instance Methods

execute(document:, operation_name: nil, variables: {}, context: {}) click to toggle source
Calls superclass method
# File lib/decidim/comparative_stats/cached_http_adapter.rb, line 8
def execute(document:, operation_name: nil, variables: {}, context: {})
  body = {}
  # Strip uniq identifier generated by GraphQL class
  body["query"] = document.to_query_string.gsub(/GraphQL__Client__OperationDefinition_[0-9 ]+/, "")
  body["variables"] = variables if variables.any?

  Rails.cache.fetch(
    "graphlient/api_queries/#{url.hash}/#{body.to_json.hash}",
    expires_in: Decidim::ComparativeStats.stats_cache_expiration_time
  ) do
    super
  end
end