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