Module: Onelinejson::AppControllerMethods

Defined in:
lib/onelinejson.rb

Instance Method Summary collapse

Instance Method Details

#append_info_to_payload(payload) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/onelinejson.rb', line 10

def append_info_to_payload(payload)
  super
  headers = if request.headers.respond_to?(:env)
    request.headers.env
  elsif request.headers.respond_to?(:to_hash)
    request.headers.to_hash
  end.reject do |k, v|
    !k.starts_with?("HTTP_") || k == "HTTP_AUTHORIZATION" || k.include?("HIDDEN")
  end
  parameters = params.reject do |k,v|
    k == 'controller' ||
      k == 'action' ||
      v.is_a?(ActionDispatch::Http::UploadedFile)
  end

  payload[:request] = {
    params: parameters,
    headers: headers,
    ip: request.ip,
    uuid: request.env['action_dispatch.request_id'],
    controller: self.class.name,
    date: Time.now.utc.iso8601,
  }
  u_id = @current_user_id || (@current_user && @current_user.id)
  if u_id.present?
    payload[:request][:user_id] = u_id.to_i
  end
end