Module: Honeybadger::Util::RequestPayload

Defined in:
lib/honeybadger/util/request_payload.rb

Overview

Internal: Constructs/sanitizes request data for notices and traces.

Constant Summary collapse

DEFAULTS =

Internal: default values to use for request data.

{
  url: nil,
  component: nil,
  action: nil,
  params: {}.freeze,
  session: {}.freeze,
  cgi_data: {}.freeze
}.freeze
KEYS =

Internal: allowed keys.

DEFAULTS.keys.freeze

Class Method Summary collapse

Class Method Details

.build(opts = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/honeybadger/util/request_payload.rb', line 20

def self.build(opts = {})
  sanitizer = opts.fetch(:sanitizer) { Sanitizer.new }

  payload = DEFAULTS.dup
  KEYS.each do |key|
    next unless opts[key]
    payload[key] = sanitizer.sanitize(opts[key])
  end

  payload[:session] = opts[:session][:data] if opts[:session] && opts[:session][:data]
  payload[:url] = sanitizer.filter_url(payload[:url]) if payload[:url]

  payload
end