class Fulfil::Request
Public Class Methods
new(url)
click to toggle source
# File lib/fulfil/request.rb, line 9 def initialize(url) check_auth_params @options ={ base_url: (Fulfil::BASE_URL % {subdomain: Fulfil.authentication[:subdomain]}) << url, api_key: Fulfil.authentication[:api_key] } end
Public Instance Methods
all(data)
click to toggle source
# File lib/fulfil/request.rb, line 21 def all(data) request :get, data end
find(data)
click to toggle source
# File lib/fulfil/request.rb, line 25 def find(data) request :get, data end
get(id)
click to toggle source
# File lib/fulfil/request.rb, line 17 def get(id) request :get, {}, "/#{id}" end
Private Instance Methods
check_auth_params()
click to toggle source
USed to check if auth is done properly before making calls
# File lib/fulfil/request.rb, line 37 def check_auth_params if (Fulfil.authentication.nil? || Fulfil.authentication[:subdomain].empty? || Fulfil.authentication[:api_key].empty?) raise Fulfil::AuthenticationError, "Please set your subdomain and api key" end end
create_response(response)
click to toggle source
Recursively builds response as object of Fulfil::Base
class.
# File lib/fulfil/request.rb, line 69 def create_response response json = JSON.parse(response.body_str) if json.is_a?(Array) result = json.map {|result| Fulfil::Base.new(result)} else result = Fulfil::Base.new(json) if result.type == "UserError" raise Fulfil::UserError, result.message end end result end
parse_response(response)
click to toggle source
# File lib/fulfil/request.rb, line 60 def parse_response response if response.response_code == 401 raise Fulfil::UnauthorizedError, "Unauthorized access" else create_response response end end
request(http_method, data={}, url="")
click to toggle source
Issue request and get response
# File lib/fulfil/request.rb, line 44 def request(http_method, data={}, url="") final_url = @options[:base_url] << url begin case http_method when :get response = Curl.get(final_url, data) do |http| http.headers['x-api-key'] = @options[:api_key] http.headers['Accept'] = 'application/json' end end rescue Curl::Err::HostResolutionError raise Fulfil::HostResolutionError, "Invalid Subdomain" end parse_response response end