Sha256: a1a4f9b2eddb63d11871c8712af67a2e60b38b9cee8f71de5e679e723b99b618

Contents?: true

Size: 1022 Bytes

Versions: 15

Compression:

Stored size: 1022 Bytes

Contents

module GrapeApeRails
  module Handlers
    class RailsLogging
      def initialize(app)
        @app = app
      end

      def call(env)
        api_version = env['rack.routing_args'][:route_info].route_version rescue nil
        payload = {
          remote_addr:    env['REMOTE_ADDR'],
          request_method: env['REQUEST_METHOD'],
          request_path:   env['PATH_INFO'],
          request_query:  env['QUERY_STRING'],
          api_version:    api_version
        }
        req = Rack::Request.new(env)
        payload[:params] = req.params
        ActiveSupport::Notifications.instrument "grape.request", payload do
          @app.call(env).tap do |response|
            status, headers, body = *response
            payload[:params].merge!(env["api.endpoint"].params.to_hash)
            payload[:params].delete("route_info")
            payload[:params].delete("format")
            payload[:response_status] = status
          end
        end
      rescue
        @app.call(env)
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
grape_ape_rails-0.9.13 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.12 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.11 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.10 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.9 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.8 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.7 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.6 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.5 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.4 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.3 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.2 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.9.1 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.5.1 lib/grape_ape_rails/handlers/rails_logging.rb
grape_ape_rails-0.5.0 lib/grape_ape_rails/handlers/rails_logging.rb