This commit is contained in:
26
app/models/qr_code_link.rb
Normal file
26
app/models/qr_code_link.rb
Normal file
@@ -0,0 +1,26 @@
|
||||
class QrCodeLink
|
||||
attr_reader :url
|
||||
|
||||
def initialize(url)
|
||||
@url = url
|
||||
end
|
||||
|
||||
def signed
|
||||
self.class.verifier.generate(@url, purpose: :qr_code)
|
||||
end
|
||||
|
||||
def self.from_signed(signed)
|
||||
new verifier.verify(signed, purpose: :qr_code)
|
||||
end
|
||||
|
||||
private
|
||||
class << self
|
||||
def verifier
|
||||
ActiveSupport::MessageVerifier.new(secret, url_safe: true)
|
||||
end
|
||||
|
||||
def secret
|
||||
Rails.application.key_generator.generate_key("qr_codes")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user