Sha256: 6640888c841f8134cc3831f32fb374ebce592c092a0f59c6c599f3729743787c
Contents?: true
Size: 1.14 KB
Versions: 3
Compression:
Stored size: 1.14 KB
Contents
require "faraday" require "multi_json" module Ashikawa module Core # Preprocessor for Faraday Requests class RequestPreprocessor < Faraday::Middleware # Create a new Request Preprocessor # # @param [Object] app Faraday internal # @param [Object] logger The object you want to log to # @return [RequestPreprocessor] # @api private def initialize(app, logger) @app = app @logger = logger end # Process a Request # # @param [Hash] env Environment info # @return [Object] # @api private def call(env) body = env[:body] env[:body] = MultiJson.dump(body) if body log(env[:method], env[:url], body) @app.call(env) end private # Log a Request # # @param [Symbol] method # @param [String] url # @param [String] body # @return [nil] # @api private def log(method, url, body) @logger.info("#{method.upcase} #{url} #{body}") nil end end Faraday.register_middleware :request, :ashikawa_request => lambda { RequestPreprocessor} end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ashikawa-core-0.7.2 | lib/ashikawa-core/request_preprocessor.rb |
ashikawa-core-0.7.1 | lib/ashikawa-core/request_preprocessor.rb |
ashikawa-core-0.7.0 | lib/ashikawa-core/request_preprocessor.rb |