class GrapeClient::Connection
Attributes
headers[R]
Public Class Methods
new(user, password)
click to toggle source
# File lib/grape_client/connection.rb, line 12 def initialize(user, password) @user = user @password = password end
Public Instance Methods
request(method, url, params = {})
click to toggle source
# File lib/grape_client/connection.rb, line 17 def request(method, url, params = {}) uri = prepare_uri(method, url, params) req = prepare_request(method, uri, params) res = Net::HTTP.start(uri.hostname, uri.port) do |http| http.request(req) end @headers = res.to_hash validate_response res end
Private Instance Methods
connector(method)
click to toggle source
# File lib/grape_client/connection.rb, line 59 def connector(method) case method.to_sym when :get then Net::HTTP::Get when :put then Net::HTTP::Put when :post then Net::HTTP::Post when :delete then Net::HTTP::Delete else raise UndefinedMethod end end
prepare_request(method, uri, params = {})
click to toggle source
# File lib/grape_client/connection.rb, line 40 def prepare_request(method, uri, params = {}) req = connector(method).new(uri) req.basic_auth @user, @password if params.any? && [:put, :post].include?(method.to_sym) req.set_form_data(params) end req end
prepare_uri(method, url, params = {})
click to toggle source
# File lib/grape_client/connection.rb, line 31 def prepare_uri(method, url, params = {}) uri = URI(url) if params.any? && [:get, :delete].include?(method.to_sym) uri.query = URI.encode_www_form(params) end uri end
validate_response(res)
click to toggle source
# File lib/grape_client/connection.rb, line 50 def validate_response(res) case res when Net::HTTPUnauthorized then raise Unauthorized when Net::HTTPUnprocessableEntity then raise InvalidEntity when Net::HTTPSuccess then res.body else raise UnknownError, res.body end end