lib/pina/rest_adapter.rb in pina-0.1.0 vs lib/pina/rest_adapter.rb in pina-0.2.0
- old
+ new
@@ -1,12 +1,12 @@
module Pina
class RestAdapter
class << self
- def get(resource, id = nil)
+ def get(resource, id_or_params = nil)
fail ConfigurationNotSet unless Pina.configuration
- request = Typhoeus.get(url(resource, id), headers: auth)
+ request = Typhoeus.get(url(resource, id_or_params), headers: auth)
Response.new(request.response_code, request.body)
end
def post(resource, payload)
fail ConfigurationNotSet unless Pina.configuration
@@ -40,11 +40,20 @@
.strict_encode64("#{Pina.configuration.email}:"\
"#{Pina.configuration.api_token}")
}
end
- def url(resource, id)
- Pina.configuration.base_url + "#{resource}/#{id}"
+ def url(resource, id_or_params)
+ if id_or_params.is_a? Hash
+ params = prepare_params_for_request(id_or_params)
+ Pina.configuration.base_url + "#{resource}?#{params}"
+ else
+ Pina.configuration.base_url + "#{resource}/#{id_or_params}"
+ end
+ end
+
+ def prepare_params_for_request(params)
+ params.map { |key, value| "#{URI::escape(key.to_s)}=#{URI::escape(value.to_s)}" }.join('&')
end
end
class Response
attr_accessor :body, :status_code