class ShippingEasy::Http::Request

Attributes

body[RW]
http_method[RW]
params[RW]
relative_path[RW]

Public Class Methods

connect!(options = {}) click to toggle source
# File lib/shipping_easy/http/request.rb, line 12
def self.connect!(options = {})
  new(options).connect!
end
new(options = {}) click to toggle source
# File lib/shipping_easy/http/request.rb, line 5
def initialize(options = {})
  @http_method = options.fetch(:http_method, :get)
  @params = options.fetch(:params, {})
  @body = options[:payload] && options[:payload].to_json
  @relative_path = options.delete(:relative_path)
end

Public Instance Methods

adapter() click to toggle source
# File lib/shipping_easy/http/request.rb, line 35
def adapter
  ShippingEasy.configuration.http_adapter.new(self)
end
api_key() click to toggle source
# File lib/shipping_easy/http/request.rb, line 43
def api_key
  ShippingEasy.api_key
end
api_secret() click to toggle source
# File lib/shipping_easy/http/request.rb, line 39
def api_secret
  ShippingEasy.api_secret
end
base_url() click to toggle source
# File lib/shipping_easy/http/request.rb, line 47
def base_url
  ShippingEasy.base_url
end
connect!() click to toggle source
# File lib/shipping_easy/http/request.rb, line 16
def connect!
  sign_request!
  adapter.connect!
end
sign_request!() click to toggle source
# File lib/shipping_easy/http/request.rb, line 21
def sign_request!
  params[:api_key] = api_key
  params[:api_timestamp] = Time.now.to_i
  params[:api_signature] = signature.to_s
end
signature() click to toggle source
# File lib/shipping_easy/http/request.rb, line 31
def signature
  ShippingEasy::Signature.new(api_secret: api_secret, method: http_method, path: uri, params: params, body: body)
end
uri() click to toggle source
# File lib/shipping_easy/http/request.rb, line 27
def uri
  "/api#{relative_path}"
end