Sha256: 92d03348cb920fcbdd1ce7c3c39db97a5ba78f2e46139de6dac247331184f1ea

Contents?: true

Size: 884 Bytes

Versions: 10

Compression:

Stored size: 884 Bytes

Contents

module Braintree
  class GraphQLClient < Http # :nodoc:

    def initialize(config)
      @config = config
      @graphql_headers = {
        'Accept' => 'application/json',
        'Braintree-Version' => @config.graphql_api_version,
        'Content-Type' => 'application/json'
      }
    end

    def query(definition, variables = {}, operationName = nil)
      graphql_connection = _setup_connection(@config.graphql_server, @config.graphql_port)

      request = {}
      request['query'] = definition
      request['operationName'] = operationName if operationName
      request['variables'] = variables

      response = _http_do Net::HTTP::Post, @config.graphql_base_url, request.to_json, nil, graphql_connection, @graphql_headers
      data = JSON.parse(response.body, :symbolize_names => true)
      Util.raise_exception_for_graphql_error(data)

      data
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
braintree-2.100.0 lib/braintree/graphql_client.rb
braintree-2.99.0 lib/braintree/graphql_client.rb
braintree-2.98.0 lib/braintree/graphql_client.rb
braintree-2.97.0 lib/braintree/graphql_client.rb
braintree-2.96.0 lib/braintree/graphql_client.rb
braintree-2.95.0 lib/braintree/graphql_client.rb
braintree-2.94.0 lib/braintree/graphql_client.rb
braintree-2.93.0 lib/braintree/graphql_client.rb
braintree-2.92.0 lib/braintree/graphql_client.rb
braintree-2.91.0 lib/braintree/graphql_client.rb