Sha256: c27d3dbef928b60fbc3576d018c51444954f76b9f595b07435b25090c0292f25
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true # Originally based on GrapiQL Rails Config # https://github.com/rmosolgo/graphiql-rails/blob/5770e774f9da754aa8c1eee5651d6c663ca8e2a2/lib/graphiql/rails/config.rb module GraphQL module Voyager module Rails class Config # @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 attr_accessor :headers attr_accessor :csrf DEFAULT_HEADERS = { 'Content-Type' => ->(_) { 'application/json' }, } CSRF_TOKEN_HEADER = { "X-CSRF-Token" => -> (view_context) { view_context.form_authenticity_token } } def initialize(csrf: true, headers: DEFAULT_HEADERS) @headers = headers.dup @csrf = csrf end # Call defined procs, add CSRF token if specified 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 end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
graphql-voyager-rails-1.0.2 | lib/graphql/voyager/rails/config.rb |
graphql-voyager-rails-1.0.1 | lib/graphql/voyager/rails/config.rb |