20 lines
473 B
Ruby
20 lines
473 B
Ruby
class Session < ApplicationRecord
|
|
ACTIVITY_REFRESH_RATE = 1.hour
|
|
|
|
has_secure_token
|
|
|
|
belongs_to :user
|
|
|
|
before_create { self.last_active_at ||= Time.now }
|
|
|
|
def self.start!(user_agent:, ip_address:)
|
|
create! user_agent: user_agent, ip_address: ip_address
|
|
end
|
|
|
|
def resume(user_agent:, ip_address:)
|
|
if last_active_at.before?(ACTIVITY_REFRESH_RATE.ago)
|
|
update! user_agent: user_agent, ip_address: ip_address, last_active_at: Time.now
|
|
end
|
|
end
|
|
end
|