class Okay::GraphQL::Query
A class for submitting GraphQL
queries.
Public Class Methods
new(raw_query = nil, &query)
click to toggle source
# File lib/okay/graphql.rb, line 75 def initialize(raw_query = nil, &query) @query = raw_query || QueryDSL.new(&query) end
Public Instance Methods
submit!(url, headers = {})
click to toggle source
# File lib/okay/graphql.rb, line 85 def submit!(url, headers = {}) if url == :github url = "https://api.github.com/graphql" bearer_token = headers[:bearer_token] if bearer_token.nil? raise ArgumentError, "missing keyword: bearer_token" end headers = default_github_headers(bearer_token).merge(headers) end data = { "query" => to_s, }.to_json Okay::HTTP.post(url, headers: headers, data: data) end
to_s()
click to toggle source
# File lib/okay/graphql.rb, line 79 def to_s "query {\n" + @query.to_s.gsub(/^/, " ") + "}" end
Private Instance Methods
default_github_headers(token)
click to toggle source
# File lib/okay/graphql.rb, line 106 def default_github_headers(token) { "Accept" => "application/vnd.github.v4.idl", "Authorization" => "bearer #{token}", } end