Class: Cloudflare::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudflare/connection.rb

Overview

Internal Faraday wrapper. Singleton; shared by every resource across every product. Auth, retries, and JSON encoding live here so the Resource layer can stay focused on REST semantics.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.instanceObject



7
# File 'lib/cloudflare/connection.rb', line 7

def instance = @instance ||= new

.reset!Object



8
# File 'lib/cloudflare/connection.rb', line 8

def reset!   = @instance = nil

Instance Method Details

#request(method, path, body: nil, params: nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/cloudflare/connection.rb', line 11

def request(method, path, body: nil, params: nil)
  raise Error, "Cloudflare.api_token not configured" if Cloudflare.api_token.nil?

  faraday.public_send(method, path.delete_prefix("/")) do |req|
    req.headers["Authorization"] = "Bearer #{Cloudflare.api_token}"
    req.headers["User-Agent"]    = Cloudflare.configuration.user_agent
    req.params = compact(params) if params
    req.body   = compact(body)   if body
  end.body
rescue Faraday::Error => e
  raise translate_error(e)
end