class BitflyerApi::HTTP::Middleware
Attributes
key[RW]
secret[RW]
Public Class Methods
new(app, key, secret)
click to toggle source
Calls superclass method
# File lib/bitflyer_api/http/middleware.rb, line 9 def initialize(app, key, secret) super(app) @key = key @secret = secret end
Public Instance Methods
call(env)
click to toggle source
# File lib/bitflyer_api/http/middleware.rb, line 15 def call(env) return @app.call(env) if key.nil? || secret.nil? env[:request_headers]["ACCESS-KEY"] = key if key env[:request_headers]["ACCESS-TIMESTAMP"] = timestamp env[:request_headers]["ACCESS-SIGN"] = signature(env, secret) @app.call env end
Private Instance Methods
signature(env, secret)
click to toggle source
# File lib/bitflyer_api/http/middleware.rb, line 26 def signature(env, secret) method = env[:method].to_s.upcase query = env[:url].query.present? ? "?" + env[:url].query : "" path = env[:url].path + query body = env[:body] || "" OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), secret, "#{timestamp}#{method}#{path}#{body}") end
timestamp()
click to toggle source
# File lib/bitflyer_api/http/middleware.rb, line 35 def timestamp Time.now.to_i.to_s end