Sha256: cd4278aa23578012d62a275d98200d77a394f135001b799ed630b0fc315b10c7

Contents?: true

Size: 383 Bytes

Versions: 102

Compression:

Stored size: 383 Bytes

Contents

module Spree
  class GenerateToken
    def call(model_class = Spree::Order)
      loop do
        token = "#{random_token}#{unique_ending}"
        break token unless model_class.exists?(token: token)
      end
    end

    private

    def random_token
      SecureRandom.urlsafe_base64(nil, false)
    end

    def unique_ending
      (Time.now.to_f * 1000).to_i
    end
  end
end

Version data entries

102 entries across 102 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/services/spree/generate_token.rb
spree_core-4.10.0 app/services/spree/generate_token.rb
spree_core-4.9.0 app/services/spree/generate_token.rb
spree_core-4.8.3 app/services/spree/generate_token.rb
spree_core-4.8.2 app/services/spree/generate_token.rb
spree_core-4.7.3 app/services/spree/generate_token.rb
spree_core-4.6.6 app/services/spree/generate_token.rb
spree_core-4.5.5 app/services/spree/generate_token.rb
spree_core-4.0.9 app/services/spree/generate_token.rb
spree_core-4.1.15 app/services/spree/generate_token.rb
spree_core-4.2.7 app/services/spree/generate_token.rb
spree_core-4.3.3 app/services/spree/generate_token.rb
spree_core-4.4.1 app/services/spree/generate_token.rb
spree_core-4.5.4 app/services/spree/generate_token.rb
spree_core-4.6.5 app/services/spree/generate_token.rb
spree_core-4.7.2 app/services/spree/generate_token.rb
spree_core-4.7.1 app/services/spree/generate_token.rb
spree_core-4.6.4 app/services/spree/generate_token.rb
spree_core-4.7.0 app/services/spree/generate_token.rb
spree_core-4.6.3 app/services/spree/generate_token.rb