Class: GraphQL::Hive::Client
- Inherits:
-
Object
- Object
- GraphQL::Hive::Client
- Defined in:
- lib/graphql-hive/client.rb
Overview
API client
Instance Method Summary collapse
- #build_request(uri, body) ⇒ Object
-
#initialize(options) ⇒ Client
constructor
A new instance of Client.
- #send(path, body, _log_type) ⇒ Object
- #setup_http(uri) ⇒ Object
Constructor Details
#initialize(options) ⇒ Client
Returns a new instance of Client.
10 11 12 |
# File 'lib/graphql-hive/client.rb', line 10 def initialize() = end |
Instance Method Details
#build_request(uri, body) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/graphql-hive/client.rb', line 40 def build_request(uri, body) request = Net::HTTP::Post.new(uri.request_uri) request['Authorization'] = [:token] request['X-Usage-API-Version'] = '2' request['content-type'] = 'application/json' request['User-Agent'] = "Hive@#{Graphql::Hive::VERSION}" request['graphql-client-name'] = 'Hive Ruby Client' request['graphql-client-version'] = Graphql::Hive::VERSION request.body = JSON.generate(body) request end |
#send(path, body, _log_type) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/graphql-hive/client.rb', line 14 def send(path, body, _log_type) uri = URI::HTTP.build( scheme: [:port].to_s == '443' ? 'https' : 'http', host: [:endpoint] || 'app.graphql-hive.com', port: [:port] || '443', path: path ) http = setup_http(uri) request = build_request(uri, body) response = http.request(request) [:logger].debug(response.inspect) [:logger].debug(response.body.inspect) rescue StandardError => e [:logger].fatal("Failed to send data: #{e}") end |
#setup_http(uri) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/graphql-hive/client.rb', line 33 def setup_http(uri) http = ::Net::HTTP.new(uri.host, uri.port) http.use_ssl = [:port].to_s == '443' http.read_timeout = 2 http end |