Sha256: fc10bbf7c0c503a537d6290a1569576683f863b1891f16bba9f9cc93353084f7

Contents?: true

Size: 630 Bytes

Versions: 8

Compression:

Stored size: 630 Bytes

Contents

module Storytime
  class Subscription < ActiveRecord::Base
    include Storytime::ScopedToSite
    belongs_to :site

    scope :active, -> { where(subscribed: true) }

    validates_presence_of :email
    validates_format_of :email, with: Storytime.email_regexp
    validates_uniqueness_of :email, scope: :site_id

    before_create :generate_token

    def generate_token
      key = Rails.application.secrets.secret_key_base
      digest = OpenSSL::Digest.new('sha1')

      self.token = OpenSSL::HMAC.hexdigest(digest, key, self.email)
    end

    def unsubscribe!
      update_attributes(subscribed: false)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
storytime-2.1.6 app/models/storytime/subscription.rb
storytime-2.1.5 app/models/storytime/subscription.rb
storytime-2.1.4 app/models/storytime/subscription.rb
storytime-2.1.3 app/models/storytime/subscription.rb
storytime-2.1.2 app/models/storytime/subscription.rb
storytime-2.1.1 app/models/storytime/subscription.rb
storytime-2.1.0 app/models/storytime/subscription.rb
storytime-2.0.0 app/models/storytime/subscription.rb