Sha256: a2e994dab2cfd1957f646e14d0fc3a9573f25f55bb5cc09951de61f8ee044b9e
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
# frozen_string_literal: true module FlowcommerceSpree class LoggingHttpClient < ::Io::Flow::V0::HttpClient::DefaultHttpHandlerInstance attr_reader :error def initialize(base_uri, logger: FlowcommerceSpree.logger) super(base_uri) @logger = logger end def execute(request) # original_open = client.open_timeout # original_read = client.read_timeout start_time = Time.now.utc.round(10) @logger.info "start #{request.method} #{request.path}" @logger.info "body: #{request.instance_variable_get(:@header)}" @logger.info "body: #{request.body}" if request.path.start_with?('/organizations') # Contrived example to show how client settings can be adjusted # client.open_timeout = 60 # client.read_timeout = 60 end begin response = super rescue Io::Flow::V0::HttpClient::ServerError => e @error = { error: e }.to_json ensure # client.open_timeout = original_open # client.read_timeout = original_read end_time = Time.now.utc.round(10) duration = ((end_time - start_time) * 1000).round(0) @logger.info "complete #{request.method} #{request.path} #{duration} ms" @logger.info "response: #{response}" @logger.info "Error: #{e.inspect}" if e end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
flowcommerce_spree-0.0.2 | lib/flowcommerce_spree/logging_http_client.rb |
flowcommerce_spree-0.0.1 | lib/flowcommerce_spree/logging_http_client.rb |