class Lato::Session
def self.generate_session_per_user(user_id, extra_params = {})
def self.generate_session_per_user(user_id, extra_params = {}) extra_params.merge(user_id: user_id).to_json end
def get(key)
def get(key) @session&.dig(key) end
def initialize(session)
def initialize(session) @session = parse_session(session) end
def parse_session(session)
def parse_session(session) return nil if session.blank? (session.is_a?(String) ? JSON.parse(session) : session).with_indifferent_access rescue StandardError => e Rails.logger.error "Lato::Session.parse_session: #{e.message}" nil end
def really_valid?
def really_valid? !!user end
def user
def user @user ||= Lato::User.find_by(id: user_id) end
def user_id
def user_id @session&.dig(:user_id) end
def valid?
def valid? !@session.blank? end