class Graphql::Voyager::Rails::Config

Constants

CSRF_TOKEN_HEADER
DEFAULT_HEADERS

Attributes

csrf[RW]
headers[RW]

@example Adding a header to the request

config.headers["My-Header"] = -> (view_context) { "My-Value" }

@return [Hash<String => Proc>] Keys are headers to include in GraphQL requests, values are `->(view_context) { … }` procs to determin values

Public Class Methods

new(csrf: true, headers: DEFAULT_HEADERS) click to toggle source
# File lib/graphql/voyager/rails/config.rb, line 25
def initialize(csrf: true, headers: DEFAULT_HEADERS)
  @headers = headers.dup
  @csrf = csrf
end

Public Instance Methods

resolve_headers(view_context) click to toggle source

Call defined procs, add CSRF token if specified

# File lib/graphql/voyager/rails/config.rb, line 31
def resolve_headers(view_context)
  all_headers = DEFAULT_HEADERS.merge(headers)

  if csrf
    all_headers = all_headers.merge(CSRF_TOKEN_HEADER)
  end

  all_headers.each_with_object({}) do |(key, value), memo|
    memo[key] = value.call(view_context)
  end
end