AddProject database interface with tests

This commit is contained in:
Imbus 2024-02-27 07:59:42 +01:00
parent 6f51151d64
commit 229ebc3a08
2 changed files with 11 additions and 5 deletions

View file

@ -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
}

View file

@ -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")