class FaradayMiddleware::AwsSigV4

Public Class Methods

new(app, options = nil) click to toggle source
Calls superclass method
# File lib/faraday_middleware/request/aws_sigv4.rb, line 10
def initialize(app, options = nil)
  super(app)
  @signer = Aws::Sigv4::Signer.new(options)
  @options = options
end

Public Instance Methods

call(env) click to toggle source
# File lib/faraday_middleware/request/aws_sigv4.rb, line 16
def call(env)
  sign!(env)
  @app.call(env)
end

Private Instance Methods

build_aws_sigv4_request(env) click to toggle source
# File lib/faraday_middleware/request/aws_sigv4.rb, line 32
def build_aws_sigv4_request(env)
  {
    http_method: env.method.to_s,
    url: seahorse_encode_query(env.url),
    headers: env.request_headers,
    body: env.body
  }
end
sign!(env) click to toggle source
# File lib/faraday_middleware/request/aws_sigv4.rb, line 23
def sign!(env)
  request = build_aws_sigv4_request(env)
  signature = @signer.sign_request(request)

  signature.headers.each do |name, value|
    env.request_headers[name] = value
  end
end