Class: OrangeData::Transport::RequestSignatureMiddleware

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/orange_data/transport.rb

Overview

middleware for request signatures

Instance Method Summary collapse

Constructor Details

#initialize(app, signature_key) ⇒ RequestSignatureMiddleware

Returns a new instance of RequestSignatureMiddleware.



24
25
26
27
28
# File 'lib/orange_data/transport.rb', line 24

def initialize(app, signature_key)
  @app = app
  @signature_key = signature_key
  super(app)
end

Instance Method Details

#call(env) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/orange_data/transport.rb', line 30

def call(env)
  if env.body
    signature = @signature_key.sign(OpenSSL::Digest.new('SHA256'), env.body)
    env.request_headers['X-Signature'] = Base64.strict_encode64(signature)
  end
  @app.call(env)
end