Sha256: b52ed9ea1a7b06515c941a495c862a05c046f3af832801fd72a363f39970a187

Contents?: true

Size: 669 Bytes

Versions: 6

Compression:

Stored size: 669 Bytes

Contents

module Jobshop
  class SessionActivation < ApplicationRecord
    LIMIT = 20

    class << self
      def active?(token)
        token && where(activation_token: token).exists?
      end

      def activate(token)
        activation = create!(activation_token: token)
        enforce_active_session_quota
        activation
      end

      def deactivate(token)
        return unless token
        where(activation_token: token).delete_all
      end

      def enforce_active_session_quota
        order("created_at desc").offset(LIMIT).destroy_all
      end

      def exclusive(token)
        where("activation_token != ?", id).delete_all
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
jobshop-0.0.163 app/models/jobshop/session_activation.rb
jobshop-0.0.157 app/models/jobshop/session_activation.rb
jobshop-0.0.131 app/models/jobshop/session_activation.rb
jobshop-0.0.127 app/models/jobshop/session_activation.rb
jobshop-0.0.113 app/models/jobshop/session_activation.rb
jobshop-0.0.109 app/models/jobshop/session_activation.rb