login

<     >

2023-08-02 10:39:17 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

reorder methods in data module

diff --git a/data.lua b/data.lua
index fed1304..ae0c245 100644
--- a/data.lua
+++ b/data.lua
@@ -88,35 +88,10 @@ function Model:create_states()
     ]]
 end
 
-function Model:get_user(nick)
-    return self.db:execute("SELECT * FROM User WHERE nick = ?;", nick)[1]
-end
-
-function Model:get_project(name)
-    return self.db:execute("SELECT * FROM Project WHERE name = ?;", name)[1]
-end
-
-function Model:get_user_projects(user_id)
-    return self.db:execute([[
-        SELECT * FROM Project JOIN Membership ON Project.id = Membership.proj_id
-        WHERE Membership.user_id = ?;
-    ]], user_id)
-end
-
 function Model:get_states()
     return self.db:execute("SELECT * FROM State;")
 end
 
-function Model:get_tickets(proj_id, state_id)
-    -- TODO: limit "done" tickets by age
-    local query = "SELECT * FROM Ticket WHERE proj_id = ? AND state_id = ?;"
-    return self.db:execute(query, proj_id, state_id)
-end
-
-function Model:get_comments(ticket_id)
-    return self.db:execute("SELECT * FROM Comment WHERE ticket_id = ?;", ticket_id)
-end
-
 function Model:create_user(nick, name, password)
     local salt = auth.get_salt()
     local hash = auth.hash_pass(password, salt)
@@ -126,6 +101,10 @@ function Model:create_user(nick, name, password)
     self.db:execute(query, nick, name, salt, hash)
 end
 
+function Model:get_user(nick)
+    return self.db:execute("SELECT * FROM User WHERE nick = ?;", nick)[1]
+end
+
 function Model:create_invite(user_id)
     local uuid = auth.hex(auth.uuid4())
     local expire = "unixepoch('now', '+2 days')"
@@ -138,10 +117,6 @@ function Model:get_invites(user_id)
     return self.db:execute("SELECT * FROM Invite WHERE user_id = ?;", user_id)
 end
 
-function Model:del_invite(user_id, uuid)
-    self.db:execute("DELETE FROM Invite WHERE user_id = ? AND uuid = ?;", user_id, uuid)
-end
-
 function Model:expire_invites()
     self.db:execute("DELETE FROM Invite WHERE expire < unixepoch();")
 end
@@ -155,6 +130,10 @@ function Model:use_invite(uuid)
     return inv ~= nil
 end
 
+function Model:del_invite(user_id, uuid)
+    self.db:execute("DELETE FROM Invite WHERE user_id = ? AND uuid = ?;", user_id, uuid)
+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
@@ -162,6 +141,24 @@ function Model:create_project(user_id, name, desc)
     return proj_id
 end
 
+function Model:get_project(name)
+    return self.db:execute("SELECT * FROM Project WHERE name = ?;", name)[1]
+end
+
+function Model:get_user_projects(user_id)
+    return self.db:execute([[
+        SELECT * FROM Project JOIN Membership ON Project.id = Membership.proj_id
+        WHERE Membership.user_id = ?;
+    ]], user_id)
+end
+
+function Model:del_project(proj_id)
+    self.db:execute("DELETE FROM Membership WHERE proj_id = ?;", proj_id)
+    self.db:execute("DELETE FROM Ticket WHERE proj_id = ?;", proj_id)
+    -- TODO: delete associated comments and shifts
+    self.db:execute("DELETE FROM Project WHERE id = ?;", proj_id)
+end
+
 -- generate new ticket code for a given project
 function Model:get_next_code(proj_id)
     local query = "SELECT code FROM Ticket WHERE proj_id = ? ORDER BY code DESC LIMIT 1;"
@@ -184,6 +181,12 @@ function Model:create_ticket(user_id, proj_id, title, desc)
     return code
 end
 
+function Model:get_tickets(proj_id, state_id)
+    -- TODO: limit "done" tickets by age
+    local query = "SELECT * FROM Ticket WHERE proj_id = ? AND state_id = ?;"
+    return self.db:execute(query, proj_id, state_id)
+end
+
 function Model:shift_ticket(user_id, ticket, state_id)
     self.db:execute([[
         INSERT INTO Shift(ticket_id, old_stt_id, new_stt_id, user_id, time)
@@ -199,11 +202,8 @@ function Model:add_comment(user_id, ticket_id, text)
     ]], ticket_id, user_id, text)
 end
 
-function Model:del_project(proj_id)
-    self.db:execute("DELETE FROM Membership WHERE proj_id = ?;", proj_id)
-    self.db:execute("DELETE FROM Ticket WHERE proj_id = ?;", proj_id)
-    -- TODO: delete associated comments and shifts
-    self.db:execute("DELETE FROM Project WHERE id = ?;", proj_id)
+function Model:get_comments(ticket_id)
+    return self.db:execute("SELECT * FROM Comment WHERE ticket_id = ?;", ticket_id)
 end
 
 -- return a list of columns ordered by state ID