class Rack::Logjam::Grape::Middleware

Public Instance Methods

after() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 15
def after
  return unless api_request?( env )

  status = @app_response.first
  headers = @app_response[1]
  body = @app_response.last.body.last

  #logger.log_response( env, status, headers, response )
  logger.log_response( env, status, headers, body )

  @app_response
end
before() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 9
def before
  return unless api_request?( env )

  logger.log_request( env )
end

Protected Instance Methods

api_request?( env ) click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 30
def api_request?( env )
  true
  #path_info( env ) =~ /^\/api\//
end
content_type() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 66
def content_type
  env['CONTENT_TYPE']
end
formatted_request_body() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 70
def formatted_request_body
  body = env['rack.input'].read
  return ANSI.yellow { 'EMPTY' } if body.blank?

  if content_type == Mime::JSON.to_s
    return ANSI.cyan { JSON.pretty_generate( JSON.parse( body )) }
  end

  nil
end
formatted_response_body() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 81
def formatted_response_body
  ANSI.cyan { JSON.pretty_generate(JSON.parse( @app_response.last.body.last )) }
end
logger() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 39
def logger
  Rack::Logjam::Logger.new
end
path_info( env ) click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 35
def path_info( env )
  env['PATH_INFO']
end
request_log_data() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 43
def request_log_data
  request_data = {
    auth_token:     env['HTTP_X_NCITE_AUTH_TOKEN'],
    content_type:   content_type,
    content_length: env['CONTENT_LENGTH'],
    accept:         env['HTTP_ACCEPT'],
    accept_version: env['HTTP_ACCEPT_VERSION'],
    method:         env['REQUEST_METHOD'],
    path:           env['PATH_INFO'],
    query:          env['QUERY_STRING']
  }
  #request_data[:user_id] = current_user.id if current_user
  request_data
end
response_log_data() click to toggle source
# File lib/rack/logjam/grape/middleware.rb, line 58
def response_log_data
  {
    description: env['api.endpoint'].options[:route_options][:description],
    source_file: env['api.endpoint'].block.source_location[0][(::Rails.root.to_s.length+1)..-1],
    source_line: env['api.endpoint'].block.source_location[1]
  }
end