Class: Panda::Core::UserActivity

Inherits:
ApplicationRecord show all
Includes:
HasUUID
Defined in:
app/models/panda/core/user_activity.rb

Class Method Summary collapse

Class Method Details

.log!(user:, action:, resource: nil, metadata: {}, request: nil) ⇒ Object

Log a user activity with optional request context



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/models/panda/core/user_activity.rb', line 21

def self.log!(user:, action:, resource: nil, metadata: {}, request: nil)
  attrs = {
    user: user,
    action: action.to_s,
    metadata: 
  }

  if resource
    attrs[:resource_type] = resource.class.name
    attrs[:resource_id] = resource.id
  end

  if request
    attrs[:ip_address] = request.remote_ip
    attrs[:user_agent] = request.user_agent
  end

  create!(attrs)
end