Sha256: fc1b6cdf72afa4826a3ddeaae18ff16497264f1bea64e8183c7f7d52a3108d4c

Contents?: true

Size: 965 Bytes

Versions: 6

Compression:

Stored size: 965 Bytes

Contents

module Braspag
  class Poster
    def initialize(url)
      @request = ::HTTPI::Request.new(url)
    end

    def do_post(method, data)
      @request.body = data
      @request.proxy = Braspag.proxy_address if Braspag.proxy_address

      with_logger(method) do
        ::HTTPI.post @request
      end
    end

    private

    def with_logger(method)
      if Braspag::logger
        Braspag::logger.info("[Braspag] ##{method}: #{@request.url}, data: #{mask_data(@request.body).inspect}")
        response = yield
        Braspag::logger.info("[Braspag] ##{method} returns: #{response.body.inspect}")
      else
        response = yield
      end
      response
    end

    def mask_data(data)
      copy_data = Rack::Utils.parse_nested_query(data)
      copy_data['cardNumber'] = "************%s" % copy_data['cardNumber'][-4..-1] if copy_data['cardNumber']
      copy_data['securityCode'] = "***" if copy_data['securityCode']
      copy_data
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
baby-braspag-0.2.1 lib/baby-braspag/poster.rb
locomotiva-braspag-0.1.6 lib/locomotiva-braspag/poster.rb
baby-braspag-0.1.6 lib/baby-braspag/poster.rb
baby-braspag-0.1.5 lib/baby-braspag/poster.rb
baby-braspag-0.1.4 lib/baby-braspag/poster.rb
baby-braspag-0.1.3 lib/baby-braspag/poster.rb