class GrapeLogging::Loggers::FilterParameters

Constants

AD_PARAMS

Public Class Methods

new(filter_parameters = nil, replacement = nil, exceptions = %w(controller action format)) click to toggle source
# File lib/grape_logging/loggers/filter_parameters.rb, line 6
def initialize(filter_parameters = nil, replacement = nil, exceptions = %w(controller action format))
  @filter_parameters = filter_parameters || (defined?(::Rails.application) ? ::Rails.application.config.filter_parameters : [])
  @replacement = replacement || '[FILTERED]'
  @exceptions = exceptions
end

Public Instance Methods

parameters(request, _) click to toggle source
# File lib/grape_logging/loggers/filter_parameters.rb, line 12
def parameters(request, _)
  { params: safe_parameters(request) }
end

Private Instance Methods

clean_parameters(parameters) click to toggle source
# File lib/grape_logging/loggers/filter_parameters.rb, line 31
def clean_parameters(parameters)
  parameter_filter.filter(parameters).reject{ |key, _value| @exceptions.include?(key) }
end
parameter_filter() click to toggle source
# File lib/grape_logging/loggers/filter_parameters.rb, line 18
def parameter_filter
  @parameter_filter ||= ParameterFilter.new(@replacement, @filter_parameters)
end
safe_parameters(request) click to toggle source
# File lib/grape_logging/loggers/filter_parameters.rb, line 22
def safe_parameters(request)
  # Now this logger can work also over Rails requests
  if request.params.empty?
    clean_parameters(request.env[AD_PARAMS] || {})
  else
    clean_parameters(request.params)
  end
end