Sha256: 55a63a9d333e7a640b7461ebd053675664056be255c7c116f2f31c26565ee07b

Contents?: true

Size: 821 Bytes

Versions: 1

Compression:

Stored size: 821 Bytes

Contents

require 'ey-hmac'
require 'faraday'

if Faraday.respond_to? :register_middleware
  Faraday.register_middleware(:request, {:hmac => lambda { Ey::Hmac::Faraday }})
end

# Request middleware that performs HMAC request signing
require 'faraday_middleware/response_middleware'

class Ey::Hmac::Faraday < FaradayMiddleware::ResponseMiddleware
  dependency do
    require 'ey-hmac' unless defined?(Ey::Hmac)
  end

  attr_reader :key_id, :key_secret, :options

  def initialize(app, key_id, key_secret, options = {})
    super(app)
    @key_id, @key_secret = key_id, key_secret
    @options = options
  end

  def call(env)
    Ey::Hmac.sign!(env, key_id, key_secret, {adapter: Ey::Hmac::Adapter::Faraday}.merge(options))
    @app.call(env)
  end
end

Faraday::Request.register_middleware(:hmac => lambda { Ey::Hmac::Faraday })

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ey-hmac-1.0.0 lib/ey-hmac/faraday.rb