class Countir::Client
Constants
- URL
Public Class Methods
new(api_key: nil)
click to toggle source
# File lib/countir/client.rb, line 7 def initialize(api_key: nil) @api_key = api_key end
Private Instance Methods
connection()
click to toggle source
# File lib/countir/client.rb, line 13 def connection @cconection ||= Faraday.new(url: URL) do |faraday| faraday.request :url_encoded faraday.adapter Faraday.default_adapter end end
get(url, params = {}, resource_class:)
click to toggle source
# File lib/countir/client.rb, line 21 def get(url, params = {}, resource_class:) response = connection.get do |req| req.url url req.headers["Authorization: Bearer"] = @api_key req.params = params end result(response, resource_class) end
post(url, params, resource_class: nil)
click to toggle source
# File lib/countir/client.rb, line 31 def post(url, params, resource_class: nil) response = connection.post do |req| req.url url req.headers["Authorization: Bearer"] = @api_key req.params = params end result(response, resource_class) end
result(response, resource_class = nil)
click to toggle source
# File lib/countir/client.rb, line 41 def result(response, resource_class = nil) status = response.status header = response.headers body = response.body message = nil case response.status when 200...300 nil when 301, 302, 303, 307 message ||= sprintf('Redirect to %s', header[:location]) raise Countir::RedirectError.new(message, status_code: status, header: header, body: body) when 401 message ||= 'Unauthorized' raise Countir::AuthorizationError.new(message, status_code: status, header: header, body: body) when 304, 400, 402...500 message ||= 'Invalid request' raise Countir::ClientError.new(message, status_code: status, header: header, body: body) when 500...600 message ||= 'Server error' raise Countir::ServerError.new(message, status_code: status, header: header, body: body) else logger.warn(sprintf('Encountered unexpected status code %s', status)) message ||= 'Unknown error' raise Countir::TransmissionError.new(message, status_code: status, header: header, body: body) end Countir::Result.new(response, resource_class) end