From 6f4c8ef1148fc7afbf253630ae33d670abd5f8c0 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Fri, 30 May 2025 14:29:21 -0400 Subject: [PATCH] refactor(token): simplify token deletion and retrieval logic - Consolidated query conditions for token deletion and retrieval into a single array for improved readability. - Removed redundant error handling for empty query conditions, as the logic now directly checks for provided parameters. - Enhanced the return statement for the findToken method to streamline the code structure. --- packages/data-schemas/src/methods/token.ts | 38 +++++++--------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/packages/data-schemas/src/methods/token.ts b/packages/data-schemas/src/methods/token.ts index 2fba3a0a6a..2c23ddec33 100644 --- a/packages/data-schemas/src/methods/token.ts +++ b/packages/data-schemas/src/methods/token.ts @@ -47,27 +47,13 @@ export function createTokenMethods(mongoose: typeof import('mongoose')) { async function deleteTokens(query: TokenQuery): Promise { try { const Token = mongoose.models.Token; - const conditions = []; - - if (query.userId) { - conditions.push({ userId: query.userId }); - } - if (query.token) { - conditions.push({ token: query.token }); - } - if (query.email) { - conditions.push({ email: query.email }); - } - if (query.identifier) { - conditions.push({ identifier: query.identifier }); - } - - if (conditions.length === 0) { - throw new Error('At least one query parameter must be provided'); - } - return await Token.deleteMany({ - $or: conditions, + $or: [ + { userId: query.userId }, + { token: query.token }, + { email: query.email }, + { identifier: query.identifier }, + ], }); } catch (error) { logger.debug('An error occurred while deleting tokens:', error); @@ -96,13 +82,11 @@ export function createTokenMethods(mongoose: typeof import('mongoose')) { conditions.push({ identifier: query.identifier }); } - if (conditions.length === 0) { - throw new Error('At least one query parameter must be provided'); - } - - return (await Token.findOne({ + const token = await Token.findOne({ $and: conditions, - }).lean()) as IToken | null; + }).lean(); + + return token as IToken | null; } catch (error) { logger.debug('An error occurred while finding token:', error); throw error; @@ -111,10 +95,10 @@ export function createTokenMethods(mongoose: typeof import('mongoose')) { // Return all methods return { + findToken, createToken, updateToken, deleteTokens, - findToken, }; }