From eec3a455094343874e1f4ae3794f3b6160ce5fb6 Mon Sep 17 00:00:00 2001 From: borean Date: Thu, 7 Mar 2024 23:24:54 +0100 Subject: [PATCH] Added GetProjectId and AddUserToProject, WIP --- backend/internal/database/db.go | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/backend/internal/database/db.go b/backend/internal/database/db.go index b000ae4..503557a 100644 --- a/backend/internal/database/db.go +++ b/backend/internal/database/db.go @@ -36,10 +36,8 @@ var scripts embed.FS const userInsert = "INSERT INTO users (username, password) VALUES (?, ?)" const projectInsert = "INSERT INTO projects (name, description, user_id) SELECT ?, ?, id FROM users WHERE username = ?" const promoteToAdmin = "INSERT INTO site_admin (admin_id) SELECT id FROM users WHERE username = ?" - -const addTimeReport = "INSERT INTO activity (report_id, activity_nbr, start_time, end_time, break, comment) VALUES (?, ?, ?, ?, ?, ?)" - -// const addUserToProject = "" +const addTimeReport = "INSERT INTO activity (report_id, activity_nbr, start_time, end_time, break, comment) VALUES (?, ?, ?, ?, ?, ?)" // WIP +const addUserToProject = "INSERT INTO project_member (project_id, user_id, role) VALUES (?, ?, ?)" // WIP // const changeUserRole = "" // DbConnect connects to the database @@ -64,9 +62,22 @@ func (d *Db) AddTimeReport(projectname string, start time.Time, end time.Time, b return err } -// func (d *Db) AddUserToProject(username string, projectname string) error { +func (d *Db) AddUserToProject(username string, projectname string, role string) error { // WIP + var userid int + userid, err := d.GetUserId(username) + if err != nil { + panic(err) + } -// } + var projectid int + projectid, err2 := d.GetProjectId(projectname) + if err2 != nil { + panic(err2) + } + + _, err3 := d.Exec(addUserToProject, projectid, userid, role) + return err3 +} // func (d *Db) ChangeUserRole(username string, projectname string, role string) error { @@ -91,7 +102,13 @@ func (d *Db) PromoteToAdmin(username string) error { func (d *Db) GetUserId(username string) (int, error) { var id int - err := d.Get(&id, "SELECT id FROM users WHERE username = ?", username) + err := d.Get(&id, "SELECT id FROM users WHERE username = ?", username) // Borde det inte vara "user" i singular + return id, err +} + +func (d *Db) GetProjectId(projectname string) (int, error) { // WIP, denna kan vara goof + var id int + err := d.Get(&id, "SELECT id FROM project WHERE project_name = ?", projectname) return id, err }