class CircuitApi::Utils::Connection
Constants
- RESPONSE_SUCCESS_CODES
Attributes
action_url[R]
body[R]
client[R]
Public Class Methods
new(client, action_url, body = nil)
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 8 def initialize(client, action_url, body = nil) @client = client @action_url = action_url @body = body end
Public Instance Methods
delete()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 26 def delete perform_query(:delete) end
get()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 14 def get perform_query(:get) end
post()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 18 def post perform_query(:post) end
put()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 22 def put perform_query(:put) end
Private Instance Methods
headers()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 41 def headers { 'Authorization' => "Bearer #{client.token}", 'Content-Type' => 'application/json; charset=utf-8' } end
http_client()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 32 def http_client @http_client ||= Net::HTTP.new(uri.hostname, uri.port) .tap { |h| h.use_ssl = true } end
perform_query(verb)
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 48 def perform_query(verb) response = http_client.send_request( verb.to_s.upcase, uri.path, CircuitApi::Utils::Object.blank?(body) ? '' : body.to_json, headers ) raise_error(response) unless RESPONSE_SUCCESS_CODES.include?(response.code.to_i) CircuitApi::Utils::Object.blank?(response.body) ? {} : JSON.parse(response.body) end
raise_error(response)
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 61 def raise_error(response) error_class = case response.code.to_i when 400 CircuitApi::BadRequest when 401 CircuitApi::Unauthorized when 500 CircuitApi::InternalServerError when 503 CircuitApi::ServiceUnavailable else CircuitApi::HttpError end raise error_class.new(response.code, response.body, uri) end
uri()
click to toggle source
# File lib/circuit_api/utils/connection.rb, line 37 def uri @uri ||= URI.join(client.api_url, action_url) end