Sha256: a65838c13a19c1b97665a48b95dda4904d316ccafd655690abaee6a6782a3ac3

Contents?: true

Size: 611 Bytes

Versions: 22

Compression:

Stored size: 611 Bytes

Contents

# frozen_string_literal: true

require 'securerandom'
module Apicasso
  # A model to abstract API access, with scope options, token generation, request limiting
  class Key < Apicasso::ApplicationRecord
    before_create :set_auth_token

    private

    # Method that generates `SecureRandom.uuid` as token until
    # an unique one has been acquired
    def set_auth_token
      loop do
        self.token = generate_auth_token
        break unless self.class.exists?(token: token)
      end
    end

    # RFC4122 style token
    def generate_auth_token
      SecureRandom.uuid.delete('-')
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
apicasso-0.7.3 app/models/apicasso/key.rb
apicasso-0.7.2 app/models/apicasso/key.rb
apicasso-0.7.1 app/models/apicasso/key.rb
apicasso-0.7.0 app/models/apicasso/key.rb
apicasso-0.6.8 app/models/apicasso/key.rb
apicasso-0.6.7 app/models/apicasso/key.rb
apicasso-0.6.6 app/models/apicasso/key.rb
apicasso-0.6.5 app/models/apicasso/key.rb
apicasso-0.6.4 app/models/apicasso/key.rb
apicasso-0.6.3 app/models/apicasso/key.rb
apicasso-0.6.2 app/models/apicasso/key.rb
apicasso-0.6.1 app/models/apicasso/key.rb
apicasso-0.6.0 app/models/apicasso/key.rb
apicasso-0.5.2 app/models/apicasso/key.rb
apicasso-0.5.1 app/models/apicasso/key.rb
apicasso-0.5.0 app/models/apicasso/key.rb
apicasso-0.4.11 app/models/apicasso/key.rb
apicasso-0.4.10 app/models/apicasso/key.rb
apicasso-0.4.9 app/models/apicasso/key.rb
apicasso-0.4.8 app/models/apicasso/key.rb