Sha256: eb1d29bddb005e453527c8e1fbca2496533062140fbf73508344535a4522b649

Contents?: true

Size: 774 Bytes

Versions: 72

Compression:

Stored size: 774 Bytes

Contents

class SingleUseLink < ActiveRecord::Base
  validate :expiration_date_cannot_be_in_the_past
  validate :cannot_be_destroyed

  after_initialize :set_defaults

  def create_for_path(path)
    self.class.create(itemId: itemId, path: path)
  end

  def expired?
    DateTime.now > expires
  end

  def to_param
    downloadKey
  end

  protected

    def expiration_date_cannot_be_in_the_past
      errors.add(:expires, "can't be in the past") if expired?
    end

    def cannot_be_destroyed
      errors[:base] << "Single Use Link has already been used" if destroyed?
    end

    def set_defaults
      return unless new_record?
      self.expires ||= DateTime.now.advance(hours: 24)
      self.downloadKey ||= (Digest::SHA2.new << rand(1_000_000_000).to_s).to_s
    end
end

Version data entries

72 entries across 72 versions & 3 rubygems

Version Path
curation_concerns-1.7.8 app/models/single_use_link.rb
curation_concerns-1.7.7 app/models/single_use_link.rb
curation_concerns-2.0.0 app/models/single_use_link.rb
curation_concerns-2.0.0.rc2 app/models/single_use_link.rb
curation_concerns-1.7.6 app/models/single_use_link.rb
curation_concerns-1.7.5 app/models/single_use_link.rb
curation_concerns-1.7.4 app/models/single_use_link.rb
curation_concerns-1.7.3 app/models/single_use_link.rb
curation_concerns-1.7.2 app/models/single_use_link.rb
curation_concerns-2.0.0.rc1 app/models/single_use_link.rb
curation_concerns-1.7.1 app/models/single_use_link.rb
curation_concerns-1.7.0 app/models/single_use_link.rb
curation_concerns-1.7.0.beta1 app/models/single_use_link.rb
curation_concerns-1.6.3 app/models/single_use_link.rb
curation_concerns-1.6.2 app/models/single_use_link.rb
sufia-models-6.7.0 app/models/single_use_link.rb
curation_concerns-1.6.1 app/models/single_use_link.rb
curation_concerns-1.6.0 app/models/single_use_link.rb
curation_concerns-1.5.0 app/models/single_use_link.rb
curation_concerns-1.4.0 app/models/single_use_link.rb