Module: CurrentSession::SessionMethods::ActiveRecordSession

Defined in:
lib/current_session/session_methods/active_record_session.rb

Overview

Implementation of session tokens for DB management

Instance Method Summary collapse

Instance Method Details

#create(user) ⇒ Object



16
17
18
19
20
# File 'lib/current_session/session_methods/active_record_session.rb', line 16

def create(user)
  session_token_class.create(user_id: user.id, value: new_session_token) do |record|
    update(record)
  end.value
end

#destroyObject



30
31
32
# File 'lib/current_session/session_methods/active_record_session.rb', line 30

def destroy
  session_token_class.find_by(value: session_token)&.destroy
end

#findObject



9
10
11
12
13
14
# File 'lib/current_session/session_methods/active_record_session.rb', line 9

def find
  session_token_class.find_by(value: session_token).try do |record|
    update(record)
    yield record.user
  end
end

#update(token) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/current_session/session_methods/active_record_session.rb', line 22

def update(token)
  token.update(
    last_request_at: current_time,
    last_request_ip: request.remote_ip,
    last_request_user_agent: request.user_agent
  )
end