Sha256: 57def0066dcb7511edd85131e69e7ec9d2e2131ba83f38601000554607655c14

Contents?: true

Size: 663 Bytes

Versions: 1

Compression:

Stored size: 663 Bytes

Contents

# frozen_string_literal: true

module Aikotoba
  class Account::UnlockToken < ApplicationRecord
    include TokenEncryptable
    belongs_to :account, class_name: "Aikotoba::Account", foreign_key: "aikotoba_account_id"
    validates :token, presence: true
    validates :expired_at, presence: true

    scope :active, ->(now: Time.current) { where("expired_at >= ?", now) }

    after_initialize do |record|
      token = Account::Token.new(extipry: Aikotoba.unlock_token_expiry)
      record.token ||= token.value
      record.expired_at ||= token.expired_at
    end

    def notify
      AccountMailer.with(account: account).unlock.deliver_now
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aikotoba-0.1.1 app/models/aikotoba/account/unlock_token.rb