class Etsy::Request

Request

A basic wrapper around GET requests to the Etsy JSON API

Public Class Methods

delete(resource_path, parameters = {}) click to toggle source
# File lib/etsy/request.rb, line 26
def self.delete(resource_path, parameters = {})
  request = Request.new(resource_path, parameters)
  Response.new(request.delete)
end
get(resource_path, parameters = {}) click to toggle source

Perform a GET request for the resource with optional parameters - returns A Response object with the payload data

# File lib/etsy/request.rb, line 11
def self.get(resource_path, parameters = {})
  request = Request.new(resource_path, parameters)
  Response.new(request.get)
end
new(resource_path, parameters = {}) click to toggle source

Create a new request for the resource with optional parameters

# File lib/etsy/request.rb, line 34
def initialize(resource_path, parameters = {})
  parameters = parameters.dup
  @token = parameters.delete(:access_token) || Etsy.credentials[:access_token]
  @secret = parameters.delete(:access_secret) || Etsy.credentials[:access_secret]
  raise("Secure connection required. Please provide your OAuth credentials via :access_token and :access_secret in the parameters") if parameters.delete(:require_secure) && !secure?
  @multipart_request = parameters.delete(:multipart)
  @resource_path = resource_path
  @resources = parameters.delete(:includes)
  if @resources.class == String
    @resources = @resources.split(',').map {|r| {:resource => r}}
  elsif @resources.class == Array
    @resources = @resources.map do |r|
      if r.class == String
        {:resource => r}
      else
        r
      end
    end
  end
  parameters = parameters.merge(:api_key => Etsy.api_key) unless secure?
  @parameters = parameters
end
post(resource_path, parameters = {}) click to toggle source
# File lib/etsy/request.rb, line 16
def self.post(resource_path, parameters = {})
  request = Request.new(resource_path, parameters)
  Response.new(request.post)
end
put(resource_path, parameters = {}) click to toggle source
# File lib/etsy/request.rb, line 21
def self.put(resource_path, parameters = {})
  request = Request.new(resource_path, parameters)
  Response.new(request.put)
end

Public Instance Methods

delete() click to toggle source
# File lib/etsy/request.rb, line 79
def delete
  client.delete(endpoint_url)
end
get() click to toggle source

Perform a GET request against the API endpoint and return the raw response data

# File lib/etsy/request.rb, line 63
def get
  client.get(endpoint_url)
end
multipart?() click to toggle source
# File lib/etsy/request.rb, line 131
def multipart?
  !!@multipart_request
end
post() click to toggle source
# File lib/etsy/request.rb, line 67
def post
  if multipart?
    client.post_multipart(endpoint_url(:include_query => false), @parameters)
  else
    client.post(endpoint_url)
  end
end
put() click to toggle source
# File lib/etsy/request.rb, line 75
def put
  client.put(endpoint_url)
end
to_url(val) click to toggle source
# File lib/etsy/request.rb, line 99
def to_url(val)
  if val.is_a? Array
    to_url(val.join(','))
  elsif val.is_a? Hash
    val.reject { |k, v|
      k.nil? || v.nil? || (k.respond_to?(:empty?) && k.empty?) || (v.respond_to?(:empty?) && v.empty?)
    }.map { |k, v| "#{to_url(k.to_s)}=#{to_url(v)}" }.join('&')
  else
    URI.escape(val.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
  end
end

Private Instance Methods

basic_client() click to toggle source
# File lib/etsy/request.rb, line 141
def basic_client
  BasicClient.new
end
secure?() click to toggle source
# File lib/etsy/request.rb, line 145
def secure?
  !@token.nil? && !@secret.nil?
end
secure_client() click to toggle source
# File lib/etsy/request.rb, line 137
def secure_client
  SecureClient.new(:access_token => @token, :access_secret => @secret)
end