class Chute::Connection
Public Class Methods
base_uri()
click to toggle source
# File lib/chute/connection.rb, line 10 def self.base_uri Chute.api_endpoint end
headers()
click to toggle source
# File lib/chute/connection.rb, line 14 def self.headers { 'Authorization' => "Bearer #{Chute.access_token}", 'Content-Type' => 'application/json', 'Accepts' => 'application/json', 'x-client_id' => Chute.app_id } end
parse(object)
click to toggle source
# File lib/chute/connection.rb, line 44 def self.parse(object) if object.respond_to?(:each_pair) Chute::Response.new(object) else [200, 201].include?(object.code) end end
request(request_type, url, body="")
click to toggle source
# File lib/chute/connection.rb, line 23 def self.request(request_type, url, body="") body = body.to_json unless String === body options = body.empty? ? {headers: headers} : {headers: headers, body: body} begin response = send(request_type, "#{base_uri}#{url}", options) parse(response) rescue Errno::ECONNREFUSED p 'Service Unavailable' Chute::Response.with_code_and_error(503, 'Service Unavailable') raise ChuteApiUnavailableException.new('Could not connect to the Server') rescue MultiJson::DecodeError => ex p 'Internal Server Error' Chute::Response.with_code_and_error(500, 'Internal Server Error') raise ChuteApiInternalException, "Chute API Exception. #{ex.message}" rescue Exception => ex p 'Unknown Error' raise end end