class SimpleGraphqlClient::Client
Public Class Methods
new(url:, &block)
click to toggle source
# File lib/simple_graphql_client/client.rb, line 8 def initialize(url:, &block) @url = url @options = block end
Public Instance Methods
query(gql:, variables: {})
click to toggle source
# File lib/simple_graphql_client/client.rb, line 13 def query(gql:, variables: {}) response = RestClient.post(@url, { query: gql, variables: variables }.to_json, request_options) handle_response(JSON.parse(response.body, object_class: OpenStruct)) end
Private Instance Methods
handle_response(body)
click to toggle source
# File lib/simple_graphql_client/client.rb, line 29 def handle_response(body) raise SimpleGraphqlClient::Errors::QueryError, body.errors if body.errors body.data end
request_options()
click to toggle source
# File lib/simple_graphql_client/client.rb, line 23 def request_options base_options = { content_type: :json } options = @options ? @options.call : {} base_options.merge(options) end