From 3125b511bbabaa79f23b1b3559b264c7a4bc880d Mon Sep 17 00:00:00 2001
From: borean <MY_NAME@example.com>
Date: Tue, 19 Mar 2024 01:38:40 +0100
Subject: [PATCH] correcting AddProject

---
 backend/internal/database/db.go | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/backend/internal/database/db.go b/backend/internal/database/db.go
index e95ae4c..ad408a7 100644
--- a/backend/internal/database/db.go
+++ b/backend/internal/database/db.go
@@ -201,15 +201,19 @@ func (d *Db) GetProjectId(projectname string) (int, error) {
 
 // Creates a new project in the database, associated with a user
 func (d *Db) AddProject(name string, description string, username string) error {
-	_, err1 := d.Exec(projectInsert, name, description, username)
-
-	// Immediately promotes said user to project manager
-	err2 := d.ChangeUserRole(username, name, "project_manager")
-	if err2 != nil {
-		panic(err2)
+	tx := d.MustBegin()
+	_, err := tx.Exec(projectInsert, name, description, username)
+	if err != nil {
+		tx.Rollback()
+		return err
 	}
-
-	return err1
+	_, err = tx.Exec(changeUserRole, "project_manager", username, name)
+	if err != nil {
+		tx.Rollback()
+		return err
+	}
+	tx.Commit()
+	return err
 }
 
 func (d *Db) GetAllUsersProject(projectname string) ([]UserProjectMember, error) {