class GqlClient::Session
Constants
- INTROSPECTION_QUERY_FILE
Attributes
http[RW]
request[RW]
Public Class Methods
new(url, headers)
click to toggle source
# File lib/gql_client.rb, line 34 def initialize(url, headers) url = URI(url) @http = Net::HTTP.new(url.host, url.port) @request = Net::HTTP::Post.new(url, headers) @request["cookie"] = 'request_method=POST' @request["content-type"] = 'application/json' end
Public Instance Methods
execute(query, variables = {})
click to toggle source
# File lib/gql_client.rb, line 56 def execute(query, variables = {}) body = { "query": query, "variables": variables } request.body = body.to_json response = http.request(request) response.code == "200" ? JSON.parse(response.read_body) : response.read_body end
introspection_query()
click to toggle source
# File lib/gql_client.rb, line 52 def introspection_query File.read(INTROSPECTION_QUERY_FILE) end
schema()
click to toggle source
# File lib/gql_client.rb, line 43 def schema @schema ||= begin request.body = {"query": introspection_query }.to_json response = http.request(request) raise StandardError, "Introspection Query Failed" unless response.code == "200" JSON.parse(response.read_body) end end