module Honeybadger::Util::RequestPayload

Constructs/sanitizes request data for notices

Constants

DEFAULTS

Default values to use for request data.

The cgi_data key where the raw Cookie header is stored.

KEYS

Allowed keys.

Public Class Methods

build(opts = {}) click to toggle source
# File lib/honeybadger/util/request_payload.rb, line 23
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[:url] = sanitizer.filter_url(payload[:url]) if payload[:url]
  if payload[:cgi_data][HTTP_COOKIE_KEY]
    payload[:cgi_data][HTTP_COOKIE_KEY] = sanitizer.filter_cookies(payload[:cgi_data][HTTP_COOKIE_KEY])
  end

  payload
end