ChangeUserName function in db.go fixed, corresponding test added
This commit is contained in:
parent
ef6c3951fd
commit
88f232e21b
3 changed files with 47 additions and 15 deletions
|
@ -66,10 +66,8 @@ const addWeeklyReport = `WITH UserLookup AS (SELECT id FROM users WHERE username
|
||||||
ProjectLookup AS (SELECT id FROM projects WHERE name = ?)
|
ProjectLookup AS (SELECT id FROM projects WHERE name = ?)
|
||||||
INSERT INTO weekly_reports (project_id, user_id, week, development_time, meeting_time, admin_time, own_work_time, study_time, testing_time)
|
INSERT INTO weekly_reports (project_id, user_id, week, development_time, meeting_time, admin_time, own_work_time, study_time, testing_time)
|
||||||
VALUES ((SELECT id FROM ProjectLookup), (SELECT id FROM UserLookup),?, ?, ?, ?, ?, ?, ?);`
|
VALUES ((SELECT id FROM ProjectLookup), (SELECT id FROM UserLookup),?, ?, ?, ?, ?, ?, ?);`
|
||||||
const addUserToProject = "INSERT INTO user_roles (user_id, project_id, p_role) VALUES (?, ?, ?)" // WIP
|
const addUserToProject = "INSERT INTO user_roles (user_id, project_id, p_role) VALUES (?, ?, ?)"
|
||||||
const changeUserRole = "UPDATE user_roles SET p_role = ? WHERE user_id = ? AND project_id = ?"
|
const changeUserRole = "UPDATE user_roles SET p_role = ? WHERE user_id = ? AND project_id = ?"
|
||||||
const changeUserName = "UPDATE user SET username = ? WHERE user_id = ?" // WIP
|
|
||||||
|
|
||||||
const getProjectsForUser = `SELECT p.id, p.name, p.description FROM projects p
|
const getProjectsForUser = `SELECT p.id, p.name, p.description FROM projects p
|
||||||
JOIN user_roles ur ON p.id = ur.project_id
|
JOIN user_roles ur ON p.id = ur.project_id
|
||||||
JOIN users u ON ur.user_id = u.id
|
JOIN users u ON ur.user_id = u.id
|
||||||
|
@ -133,7 +131,7 @@ func (d *Db) AddWeeklyReport(projectName string, userName string, week int, deve
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddUserToProject adds a user to a project with a specified role.
|
// AddUserToProject adds a user to a project with a specified role.
|
||||||
func (d *Db) AddUserToProject(username string, projectname string, role string) error { // WIP
|
func (d *Db) AddUserToProject(username string, projectname string, role string) error {
|
||||||
var userid int
|
var userid int
|
||||||
userid, err := d.GetUserId(username)
|
userid, err := d.GetUserId(username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -171,18 +169,11 @@ func (d *Db) ChangeUserRole(username string, projectname string, role string) er
|
||||||
return err3
|
return err3
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChangeUserRole changes the role of a user within a project.
|
// ChangeUserName changes the username of a user.
|
||||||
func (d *Db) ChangeUserName(username string, newname string) error {
|
func (d *Db) ChangeUserName(username string, newname string) error {
|
||||||
// Get the user ID
|
// Execute the SQL query to update the username
|
||||||
var userid int
|
_, err := d.Exec("UPDATE users SET username = ? WHERE username = ?", newname, username)
|
||||||
userid, err := d.GetUserId(username)
|
return err
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute the SQL query to change the user's role
|
|
||||||
_, err2 := d.Exec(changeUserName, username, userid)
|
|
||||||
return err2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUserRole retrieves the role of a user within a project.
|
// GetUserRole retrieves the role of a user within a project.
|
||||||
|
|
|
@ -675,3 +675,39 @@ func TestIsProjectManager(t *testing.T) {
|
||||||
t.Error("Expected projectManager to be a project manager, but it's not.")
|
t.Error("Expected projectManager to be a project manager, but it's not.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestChangeUserName(t *testing.T) {
|
||||||
|
db, err := setupState()
|
||||||
|
if err != nil {
|
||||||
|
t.Error("setupState failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a user
|
||||||
|
err = db.AddUser("testuser", "password")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("AddUser failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Change the user's name
|
||||||
|
err = db.ChangeUserName("testuser", "newname")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("ChangeUserName failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve the user's ID
|
||||||
|
userID, err := db.GetUserId("newname")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("GetUserId failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure the user's ID matches the expected value
|
||||||
|
if userID != 1 {
|
||||||
|
t.Errorf("Expected user ID to be 1, got %d", userID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attempt to retrieve the user by the old name
|
||||||
|
_, err = db.GetUserId("testuser")
|
||||||
|
if err == nil {
|
||||||
|
t.Error("Expected GetUserId to fail for the old name, but it didn't")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -32,3 +32,8 @@ type PublicUser struct {
|
||||||
type Token struct {
|
type Token struct {
|
||||||
Token string `json:"token"`
|
Token string `json:"token"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type StrNameChange struct {
|
||||||
|
PrevName string `json:"prevName" db:"prevName"`
|
||||||
|
NewName string `json:"newName" db:"newName"`
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue