Class: Faraday::Middleware::Escher::RequestSigner

Inherits:
Base
  • Object
show all
Defined in:
lib/faraday/middleware/escher/request_signer.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/faraday/middleware/escher/request_signer.rb', line 3

def call(env)

  escher = ::Escher::Auth.new(@escher_credential_scope, @escher_options)

  uri_path = env[:url].path
  endpoint = uri_path.empty? ? '/' : uri_path

  request_data = {
      uri: endpoint,
      method: env[:method].to_s.upcase,
      headers: env[:request_headers].map{|k,v| [k,v] }.push(['host',@host])
  }

  request_data[:body]= env[:body] unless env[:body].nil?

  escher.sign!(
      request_data,
      @escher_keydb_constructor.call,
      request_data[:headers].map{|ary| ary[0] }
  )

  env[:request_headers].merge!(request_data[:headers])

  return @app.call(env)

end