2023-07-22 14:46:53 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
add invites to DB
diff --git a/data.lua b/data.lua index 0e0fea4..86ce973 100644 --- a/data.lua +++ b/data.lua @@ -8,6 +8,10 @@ CREATE TABLE IF NOT EXISTS User ( salt TEXT, hash TEXT ); +CREATE TABLE IF NOT EXISTS Invite ( + uuid TEXT PRIMARY KEY, + expire INTEGER NOT NULL +); CREATE TABLE IF NOT EXISTS Project ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE, @@ -93,6 +97,26 @@ function Model:create_user(nick, name, salt, hash) self.db:execute(query, nick, name, salt, hash) end +function Model:create_invite() + local uuid = lud.crypt.uuid4() + local expire = "unixepoch('now', '+2 days')" + self.db:execute("INSERT INTO Invite(uuid, expire) VALUES (?, "..expire..");", uuid) + return uuid +end + +function Model:expire_invites() + self.db:execute("DELETE FROM Invite WHERE expire < unixepoch();") +end + +function Model:use_invite(uuid) + self:expire_invites() + local inv = self.db:execute("SELECT * FROM Invite WHERE uuid = ?;", uuid)[1] + if inv ~= nil then + self.db:execute("DELETE FROM Invite WHERE uuid = ?;", uuid) + end + return inv ~= nil +end + function Model:create_project(user_id, name, desc) self.db:execute("INSERT INTO Project(name, desc) VALUES (?, ?);", name, desc) local proj_id = self.db:execute("SELECT id FROM Project WHERE name = ?;", name)[1].id