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