diff --git a/backend/src/api/controllers/user.ts b/backend/src/api/controllers/user.ts index 570c6b7a3..bd52ef1f5 100644 --- a/backend/src/api/controllers/user.ts +++ b/backend/src/api/controllers/user.ts @@ -212,7 +212,7 @@ export async function updateName( throw new MonkeyError(409, "You can change your name once every 30 days"); } - await UserDAL.updateName(uid, name); + await UserDAL.updateName(uid, name, user.name); Logger.logToDb( "user_name_updated", `changed name from ${user.name} to ${name}`, diff --git a/backend/src/dal/user.ts b/backend/src/dal/user.ts index f7af1d4ce..5a93fe123 100644 --- a/backend/src/dal/user.ts +++ b/backend/src/dal/user.ts @@ -85,7 +85,11 @@ export async function resetUser(uid: string): Promise { ); } -export async function updateName(uid: string, name: string): Promise { +export async function updateName( + uid: string, + name: string, + previousName: string +): Promise { if (!isUsernameValid(name)) { throw new MonkeyError(400, "Invalid username"); } @@ -93,16 +97,12 @@ export async function updateName(uid: string, name: string): Promise { throw new MonkeyError(409, "Username already taken", name); } - const user = await getUser(uid, "update name"); - - const oldName = user.name; - await getUsersCollection().updateOne( { uid }, { $set: { name, lastNameChange: Date.now() }, $unset: { needsToChangeName: "" }, - $push: { nameHistory: oldName }, + $push: { nameHistory: previousName }, } ); }