-class UserToken < ActiveRecord::Base
+# == Schema Information
+#
+# Table name: user_tokens
+#
+# id :bigint(8) not null, primary key
+# user_id :bigint(8) not null
+# token :string not null
+# expiry :datetime not null
+# referer :text
+#
+# Indexes
+#
+# user_tokens_token_idx (token) UNIQUE
+# user_tokens_user_id_idx (user_id)
+#
+# Foreign Keys
+#
+# user_tokens_user_id_fkey (user_id => users.id)
+#
+
+class UserToken < ApplicationRecord
belongs_to :user
- def after_initialize
- self.token = OSM::make_token() if self.token.blank?
- self.expiry = 1.week.from_now if self.expiry.blank?
+ scope :unexpired, -> { where("expiry >= now()") }
+
+ after_initialize :set_defaults
+
+ def expired?
+ expiry < Time.now.utc
+ end
+
+ private
+
+ def set_defaults
+ self.token = OSM.make_token if token.blank?
+ self.expiry = 1.week.from_now if expiry.blank?
end
end