|
|
- # frozen_string_literal: true
- # == Schema Information
- #
- # Table name: session_activations
- #
- # id :integer not null, primary key
- # user_id :integer not null
- # session_id :string not null
- # created_at :datetime not null
- # updated_at :datetime not null
- #
-
- class SessionActivation < ApplicationRecord
- LIMIT = Rails.configuration.x.max_session_activations
-
- def self.active?(id)
- id && where(session_id: id).exists?
- end
-
- def self.activate(id)
- activation = create!(session_id: id)
- purge_old
- activation
- end
-
- def self.deactivate(id)
- return unless id
- where(session_id: id).destroy_all
- end
-
- def self.purge_old
- order('created_at desc').offset(LIMIT).destroy_all
- end
-
- def self.exclusive(id)
- where('session_id != ?', id).destroy_all
- end
- end
|