Class: FaradayMiddleware::Emarsys

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/faraday_middleware/emarsys.rb,
lib/faraday_middleware/emarsys/constants.rb

Constant Summary collapse

VERSION =
File.read(path).chomp
CONTENT_TYPE =
'Content-Type'.freeze
DEFAULT_MIME_TYPE =
'application/json'.freeze
STREAM_MIME_TYPE =
'application/stream+json'.freeze
ESCHER_OPTIONS =
{
  algo_prefix: 'EMS',
  vendor_key: 'EMS',
  auth_header_name: 'X-Ems-Auth',
  date_header_name: 'X-Ems-Date'
}.each do |k, v|
  k.freeze
  v.freeze
end.freeze

Instance Method Summary collapse

Constructor Details

#initialize(app, credential_scope:, key_id:) ⇒ Emarsys

Returns a new instance of Emarsys.



13
14
15
16
17
18
19
20
21
22
# File 'lib/faraday_middleware/emarsys.rb', line 13

def initialize(app, credential_scope:, key_id:)
  super(app)

  @signer = ::FaradayMiddleware::Escher::RequestSigner.new(
    @app,
    credential_scope: credential_scope,
    options: self.class::ESCHER_OPTIONS,
    active_key: -> { ::Escher::Keypool.new.get_active_key(key_id) }
  )
end

Instance Method Details

#call(env) ⇒ Object



24
25
26
# File 'lib/faraday_middleware/emarsys.rb', line 24

def call(env)
  @signer.call(env)
end