Module: Yeller::Rails::ControllerMethods

Defined in:
lib/yeller/rails.rb

Constant Summary collapse

YELLER_IGNORED_USER_ATTRIBUTES =
[
  'password',
  'card',
  'secret',
]

Instance Method Summary collapse

Instance Method Details

#_yeller_custom_dataObject



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/yeller/rails.rb', line 34

def _yeller_custom_data
  out = {
    :params => params,
    :session => request.env.fetch('rack.session', {}),
    :"http-request" => Yeller::Rack.yeller_http_request_data(request),
  }
  out.merge!(yeller_user_data || {})
  if respond_to?(:yeller_custom_data)
    out.merge!(yeller_custom_data || {})
  end
  out
end

#_yeller_extract_user_attributes(current_user) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/yeller/rails.rb', line 53

def _yeller_extract_user_attributes(current_user)
  user = {}
  if current_user.respond_to?(:attributes) && current_user.attributes.is_a?(Hash)
    current_user.attributes.each do |k, v|
      unless YELLER_IGNORED_USER_ATTRIBUTES.any? {|a| k.to_s.include?(a) }
        user[k.to_s] = String(v)
      end
    end
  else
    {}
  end
end

#yeller_user_dataObject



66
67
68
69
70
71
72
73
74
75
# File 'lib/yeller/rails.rb', line 66

def yeller_user_data
  return {} unless respond_to?(:current_user)
  return {} unless current_user.respond_to?(:id)
  return {} if current_user.nil?
  id = current_user.id
  return {} unless id.is_a?(Integer)
  user = {"id" => id}
  user.merge!(_yeller_extract_user_attributes(user))
  {"user" => user}
end