class ApiProxy::SignedRequest

Attributes

options[R]
request_method[R]
url[R]

Public Class Methods

new(request_method, url, options = {}) click to toggle source
# File lib/api_proxy/signed_request.rb, line 12
def initialize(request_method, url, options = {})
  @request_method = request_method.to_s.downcase
  @url = URI.parse(url)
  @options = options
end

Public Instance Methods

perform() click to toggle source
# File lib/api_proxy/signed_request.rb, line 18
def perform
  self.class.send(request_method, url, headers: headers, body: body, format: :json)
end

Private Instance Methods

body() click to toggle source
# File lib/api_proxy/signed_request.rb, line 28
def body
  options[:body]
end
config() click to toggle source
# File lib/api_proxy/signed_request.rb, line 45
def config
  ApiProxy.configuration(options[:namespace]) || :default
end
headers() click to toggle source
# File lib/api_proxy/signed_request.rb, line 24
def headers
  (options[:headers] || {}).merge(signature_headers)
end
signature_headers() click to toggle source
# File lib/api_proxy/signed_request.rb, line 32
def signature_headers
  ApiSignature::Builder.new(signature_options).headers
end
signature_options() click to toggle source
# File lib/api_proxy/signed_request.rb, line 36
def signature_options
  {
    access_key: config.api_key,
    secret: config.api_secret,
    request_method: request_method,
    path: url.path
  }
end