login

<     >

2023-07-24 10:41:44 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

model: manage invites per user

diff --git a/data.lua b/data.lua
index 35a4ce1..949ce25 100644
--- a/data.lua
+++ b/data.lua
@@ -12,7 +12,8 @@ CREATE TABLE IF NOT EXISTS User (
 );
 CREATE TABLE IF NOT EXISTS Invite (
     uuid TEXT PRIMARY KEY,
-    expire INTEGER NOT NULL
+    expire INTEGER NOT NULL,
+    user_id INTEGER REFERENCES User(id)
 );
 CREATE TABLE IF NOT EXISTS Project (
     id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -103,13 +104,22 @@ function Model:create_user(nick, name, password)
     self.db:execute(query, nick, name, salt, hash)
 end
 
-function Model:create_invite()
+function Model:create_invite(user_id)
     local uuid = auth.hex(auth.uuid4())
     local expire = "unixepoch('now', '+2 days')"
-    self.db:execute("INSERT INTO Invite(uuid, expire) VALUES (?, "..expire..");", uuid)
+    local query = "INSERT INTO Invite(uuid, expire, user_id) VALUES (?, "..expire..", ?);"
+    self.db:execute(query, uuid, user_id)
     return uuid
 end
 
+function Model:get_invites(user_id)
+    return self.db:execute("SELECT * FROM Invite WHERE user_id = ?;", user_id)
+end
+
+function Model:del_invite(uuid)
+    self.db:execute("DELETE FROM Invite WHERE uuid = ?;", uuid)
+end
+
 function Model:expire_invites()
     self.db:execute("DELETE FROM Invite WHERE expire < unixepoch();")
 end