Sha256: 906be10cfbda0f807be005068774f094fc07a3f34c3c189fcd4861359aef47e8

Contents?: true

Size: 683 Bytes

Versions: 1

Compression:

Stored size: 683 Bytes

Contents

# frozen_string_literal: true

module Aikotoba
  class Account::ConfirmationToken < 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::Value::Token.new(extipry: Aikotoba.confirmation_token_expiry)
      record.token ||= token.value
      record.expired_at ||= token.expired_at
    end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aikotoba-0.1.0 app/models/aikotoba/account/confirmation_token.rb