1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00

Implement invitation codes

This commit is contained in:
Jose Farias 2024-02-02 17:49:28 -06:00
parent 533e6690c2
commit b3a792c47d
No known key found for this signature in database
GPG key ID: 877CF7E5FFD0FB3F
11 changed files with 149 additions and 9 deletions

25
app/models/invite_code.rb Normal file
View file

@ -0,0 +1,25 @@
class InviteCode < ApplicationRecord
before_validation :generate_token, on: :create
class << self
def claim!(token)
if invite_code = find_by(token: token&.downcase)
invite_code.destroy!
true
end
end
def generate!
create!.token
end
end
private
def generate_token
loop do
self.token = SecureRandom.hex(4)
break token unless self.class.exists?(token: token)
end
end
end