From 7d4e1ffc0362f8dac970ec740ed76ecd8ee7b229 Mon Sep 17 00:00:00 2001 From: Miodec Date: Fri, 21 Apr 2023 10:43:32 +0200 Subject: [PATCH] moved last name change check to the controller --- backend/src/api/controllers/user.ts | 15 +++++++++++++-- backend/src/dal/user.ts | 10 ---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/backend/src/api/controllers/user.ts b/backend/src/api/controllers/user.ts index b0c3d7eb8..570c6b7a3 100644 --- a/backend/src/api/controllers/user.ts +++ b/backend/src/api/controllers/user.ts @@ -194,17 +194,28 @@ export async function resetUser( return new MonkeyResponse("User reset"); } +const DAY_IN_SECONDS = 24 * 60 * 60; +const THIRTY_DAYS_IN_SECONDS = DAY_IN_SECONDS * 30; + export async function updateName( req: MonkeyTypes.Request ): Promise { const { uid } = req.ctx.decodedToken; const { name } = req.body; - const oldUser = await UserDAL.getUser(uid, "update name"); + const user = await UserDAL.getUser(uid, "update name"); + + if ( + !user?.needsToChangeName && + Date.now() - (user.lastNameChange ?? 0) < THIRTY_DAYS_IN_SECONDS + ) { + throw new MonkeyError(409, "You can change your name once every 30 days"); + } + await UserDAL.updateName(uid, name); Logger.logToDb( "user_name_updated", - `changed name from ${oldUser.name} to ${name}`, + `changed name from ${user.name} to ${name}`, uid ); diff --git a/backend/src/dal/user.ts b/backend/src/dal/user.ts index 61f8af047..f7af1d4ce 100644 --- a/backend/src/dal/user.ts +++ b/backend/src/dal/user.ts @@ -85,9 +85,6 @@ export async function resetUser(uid: string): Promise { ); } -const DAY_IN_SECONDS = 24 * 60 * 60; -const THIRTY_DAYS_IN_SECONDS = DAY_IN_SECONDS * 30; - export async function updateName(uid: string, name: string): Promise { if (!isUsernameValid(name)) { throw new MonkeyError(400, "Invalid username"); @@ -100,13 +97,6 @@ export async function updateName(uid: string, name: string): Promise { const oldName = user.name; - if ( - !user?.needsToChangeName && - Date.now() - (user.lastNameChange ?? 0) < THIRTY_DAYS_IN_SECONDS - ) { - throw new MonkeyError(409, "You can change your name once every 30 days"); - } - await getUsersCollection().updateOne( { uid }, {