From 229ebc3a088a2a8c41879f5b7cc08cd663ec883f Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 27 Feb 2024 07:59:42 +0100 Subject: [PATCH] AddProject database interface with tests --- backend/internal/database/db.go | 8 +++----- backend/internal/database/db_test.go | 8 ++++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/backend/internal/database/db.go b/backend/internal/database/db.go index 335a4ea..e0006d1 100644 --- a/backend/internal/database/db.go +++ b/backend/internal/database/db.go @@ -14,6 +14,7 @@ type Db struct { } const userInsert = "INSERT INTO users (username, password) VALUES (?, ?)" +const projectInsert = "INSERT INTO projects (name, description, user_id) SELECT ?, ?, id FROM users WHERE username = ?" // DbConnect connects to the database func DbConnect() *Db { @@ -65,11 +66,8 @@ func (d *Db) GetUserId(username string) (int, error) { return id, err } +// Creates a new project in the database, associated with a user func (d *Db) AddProject(name string, description string, username string) error { - userId, err := d.GetUserId(username) - if err != nil { - return err - } - _, err = d.Exec("INSERT INTO projects (name, description, user_id) VALUES (?, ?, ?)", name, description, userId) + _, err := d.Exec(projectInsert, name, description, username) return err } diff --git a/backend/internal/database/db_test.go b/backend/internal/database/db_test.go index bad7dac..ab0355a 100644 --- a/backend/internal/database/db_test.go +++ b/backend/internal/database/db_test.go @@ -34,6 +34,14 @@ func TestDbGetUserId(t *testing.T) { } } +func TestDbAddProject(t *testing.T) { + db := DbConnect() + err := db.AddProject("test", "description", "test") + if err != nil { + t.Error("AddProject failed:", err) + } +} + func TestDbRemoveUser(t *testing.T) { db := DbConnect() err := db.RemoveUser("test")