class Cased::HTTP::Client

Public Class Methods

new(url:, api_key:, raise_on_errors: false) click to toggle source
# File lib/cased/http/client.rb, line 10
def initialize(url:, api_key:, raise_on_errors: false)
  @raise_on_errors = raise_on_errors
  @client = ::Faraday.new(url: url) do |conn|
    conn.headers[:user_agent] = "cased-ruby/v#{Cased::VERSION}"
    conn.headers[:content_type] = 'application/json'
    conn.headers[:accept] = 'application/json'
    conn.headers[:authorization] = "Bearer #{api_key}"

    conn.request :json
    conn.response :json, content_type: /\bjson$/

    conn.options.timeout = Cased.config.http_read_timeout
    conn.options.open_timeout = Cased.config.http_open_timeout
  end
end

Public Instance Methods

delete(url = nil, params = nil, headers = nil) { |req| ... } click to toggle source
# File lib/cased/http/client.rb, line 56
def delete(url = nil, params = nil, headers = nil)
  request(:delete, url, nil, headers) do |req|
    req.params.update(params) if params
    yield req if block_given?
  end
end
get(url = nil, params = nil, headers = nil) { |req| ... } click to toggle source

Requests without bodies

# File lib/cased/http/client.rb, line 42
def get(url = nil, params = nil, headers = nil)
  request(:get, url, nil, headers) do |req|
    req.params.update(params) if params
    yield req if block_given?
  end
end
head(url = nil, params = nil, headers = nil) { |req| ... } click to toggle source
# File lib/cased/http/client.rb, line 49
def head(url = nil, params = nil, headers = nil)
  request(:head, url, nil, headers) do |req|
    req.params.update(params) if params
    yield req if block_given?
  end
end
patch(url = nil, body = nil, headers = nil, &block) click to toggle source
# File lib/cased/http/client.rb, line 36
def patch(url = nil, body = nil, headers = nil, &block)
  request(:patch, url, body, headers, &block)
end
post(url = nil, body = nil, headers = nil, &block) click to toggle source
# File lib/cased/http/client.rb, line 32
def post(url = nil, body = nil, headers = nil, &block)
  request(:post, url, body, headers, &block)
end
put(url = nil, body = nil, headers = nil, &block) click to toggle source

Requests with bodies

# File lib/cased/http/client.rb, line 28
def put(url = nil, body = nil, headers = nil, &block)
  request(:put, url, body, headers, &block)
end
trace(url = nil, params = nil, headers = nil) { |req| ... } click to toggle source
# File lib/cased/http/client.rb, line 63
def trace(url = nil, params = nil, headers = nil)
  request(:trace, url, nil, headers) do |req|
    req.params.update(params) if params
    yield req if block_given?
  end
end

Private Instance Methods

raise_on_errors?() click to toggle source
# File lib/cased/http/client.rb, line 83
def raise_on_errors?
  @raise_on_errors
end
request(method, url = nil, params_or_body = nil, headers = nil, &block) click to toggle source
# File lib/cased/http/client.rb, line 72
def request(method, url = nil, params_or_body = nil, headers = nil, &block)
  response = @client.send(method, url, params_or_body, headers, &block)

  if !response.success? && raise_on_errors?
    klass = Cased::HTTP::Error.class_from_response(response)
    raise klass.from_response(response)
  else
    response
  end
end