lib/smartdc/request.rb in smartdc-0.3.0 vs lib/smartdc/request.rb in smartdc-0.4.0

- old
+ new

@@ -1,21 +1,23 @@ require 'hashie/mash' require 'multi_json' require 'faraday' -require 'faraday/response/mashify' -require 'faraday/response/parse_json' +require 'smartdc/response/mashify' +require 'smartdc/response/parse_json' +require 'smartdc/response/raise_error' module Smartdc class Request - attr_reader :url, :version, :response, :username, :password - attr_accessor :return_variable + attr_reader :url, :version, :username, :password + attr_accessor :format def initialize(options) @url = options['url'] @version = options['version'] @username = options['username'] @password = options['password'] + @format = options['format'] end def get(path, params={}) request(:get, path, params) end @@ -32,11 +34,11 @@ request(:delete, path, params) end private def request(method, path, params={}) - @response = connection.send(method) do |request| + response = connection.send(method) do |request| case method when :get request.url path, params when :post, :put request.path = path @@ -44,15 +46,15 @@ when :delete request.url path request.headers = {'content-length'=>'0'} end end - @response.body + response.body end def connection - case return_variable + case format when 'mash', nil middleware = 3 when 'hash' middleware = 2 when 'json' @@ -70,16 +72,17 @@ } } Faraday.new(options) do |builder| builder.use Faraday::Request::JSON - builder.use Faraday::Response::Mashify if middleware > 2 - builder.use Faraday::Response::ParseJson if middleware > 1 + builder.use Smartdc::Response::Mashify if middleware > 2 + builder.use Smartdc::Response::ParseJson if middleware > 1 + builder.use Smartdc::Response::RaiseError builder.adapter Faraday.default_adapter end end def basic_auth(username, password) - 'Basic ' + Base64.encode64("#{username}:#{password}").gsub!("\n", '') + 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n") end end end \ No newline at end of file