class Barzahlen::Middleware::Signature
Public Class Methods
new(request, config)
click to toggle source
# File lib/barzahlen/middleware.rb, line 8 def initialize(request, config) @request = request @config = config end
Public Instance Methods
call(opts, request_uri, method, params, body)
click to toggle source
# File lib/barzahlen/middleware.rb, line 13 def call (opts, request_uri, method, params, body) parsed_uri = URI.parse(request_uri) request_host_header = parsed_uri.host + ":" + parsed_uri.port.to_s request_method = method request_host_path = parsed_uri.path request_query_string = URI.encode_www_form(params) request_idempotency_key = opts[:headers]["Idempotency-Key"] request_date_header = Time.now.utc.strftime("%a, %d %b %Y %H:%M:%S GMT") signature = Barzahlen::Middleware.generate_bz_signature( @config.payment_key, request_host_header, request_method, request_date_header, request_host_path, request_query_string, body, request_idempotency_key ) # Attach the Date, Authorization and Host to the request new_headers = opts[:headers].merge( { Date: request_date_header, Authorization: "BZ1-HMAC-SHA256 DivisionId=#{@config.division_id}, Signature=#{signature}", Host: request_host_header, } ) return @request.call({headers: new_headers}, request_uri, method, params, body) end