class PlateApi::Request
Constants
- DefaultApiBaseEndpoint
- HttpAdapter
Public Class Methods
new(public_key, secret, method, path, custom_server = nil)
click to toggle source
# File lib/plate_api/request.rb, line 14 def initialize(public_key, secret, method, path, custom_server = nil) base_api_endpoint = custom_server ? custom_server : DefaultApiBaseEndpoint @connection = ::Faraday.new(url: base_api_endpoint) do |faraday| extra_builder_options(faraday) faraday.adapter HttpAdapter end @public_key = public_key @secret = secret @method = method @path = strip_path(path) end
Public Instance Methods
calculate_signature()
click to toggle source
# File lib/plate_api/request.rb, line 48 def calculate_signature string_to_sign = "#{@method}\n" + "#{@connection.host}\n" + "#{@connection.path_prefix}/#{@path}\n" + "#{url_parameters}\n" + "#{request_date}" signature = Base64.strict_encode64(OpenSSL::HMAC.digest("SHA512", @secret, string_to_sign)) return "hmac #{@public_key}:#{signature}" end
execute(response_type = :raw)
click to toggle source
# File lib/plate_api/request.rb, line 28 def execute(response_type = :raw) response = @connection.send(@method.downcase) do |request| request.url url_path request.headers["Date"] = request_date request.headers["Authorization"] = calculate_signature extra_request_options(request) end return case response_type when :raw return response.body when :json return JSON.parse(response.body) end end
request_date()
click to toggle source
# File lib/plate_api/request.rb, line 44 def request_date @date ||= Time.now.httpdate end
Private Instance Methods
extra_builder_options(request)
click to toggle source
# File lib/plate_api/request.rb, line 71 def extra_builder_options(request) end
extra_request_options(request)
click to toggle source
# File lib/plate_api/request.rb, line 68 def extra_request_options(request) end
strip_path(path)
click to toggle source
# File lib/plate_api/request.rb, line 74 def strip_path(path) path.gsub(/^\/|\/$/, "") end
url_parameters()
click to toggle source
# File lib/plate_api/request.rb, line 64 def url_parameters "" end
url_path()
click to toggle source
# File lib/plate_api/request.rb, line 60 def url_path @path end