Class: Dawanda::Request
- Inherits:
-
Object
- Object
- Dawanda::Request
- Defined in:
- lib/dawanda/request.rb
Overview
Request
A basic wrapper around GET requests to the Dawanda JSON API
Class Method Summary collapse
-
.base_url ⇒ Object
The base URL for API requests.
-
.get(resource_path, parameters = {}) ⇒ Object
Perform a GET request for the resource with optional parameters - returns A Response object with the payload data.
Instance Method Summary collapse
-
#endpoint_uri ⇒ Object
:nodoc:.
-
#get ⇒ Object
Perform a GET request against the API endpoint and return the raw response data.
-
#initialize(resource_path, parameters = {}) ⇒ Request
constructor
Create a new request for the resource with optional parameters.
-
#parameters ⇒ Object
:nodoc:.
Constructor Details
#initialize(resource_path, parameters = {}) ⇒ Request
Create a new request for the resource with optional parameters
23 24 25 26 |
# File 'lib/dawanda/request.rb', line 23 def initialize(resource_path, parameters = {}) @resource_path = resource_path @parameters = parameters end |
Class Method Details
.base_url ⇒ Object
The base URL for API requests
10 11 12 |
# File 'lib/dawanda/request.rb', line 10 def self.base_url url = "http://#{Dawanda.country}.#{Dawanda.domain}/api/v1" end |
.get(resource_path, parameters = {}) ⇒ Object
Perform a GET request for the resource with optional parameters - returns A Response object with the payload data
17 18 19 20 |
# File 'lib/dawanda/request.rb', line 17 def self.get(resource_path, parameters = {}) request = Request.new(resource_path, parameters) Response.new(request.get) end |
Instance Method Details
#endpoint_uri ⇒ Object
:nodoc:
48 49 50 |
# File 'lib/dawanda/request.rb', line 48 def endpoint_uri # :nodoc: URI.parse("#{self.class.base_url}#{@resource_path}") end |
#get ⇒ Object
Perform a GET request against the API endpoint and return the raw response data
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/dawanda/request.rb', line 30 def get request = Net::HTTP::Get.new endpoint_uri.path request.basic_auth Dawanda.http_basic[:user], Dawanda.http_basic[:password] if Dawanda.http_basic request.set_form_data parameters response = Net::HTTP.new(endpoint_uri.host, endpoint_uri.port).start {|http| http.request(request) } case response when Net::HTTPSuccess, Net::HTTPRedirection return response.body else raise response.body end end |