From 20ad7d52f399ed6940aa87f01764dfb1e73191cf Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Fri, 30 May 2025 13:13:10 -0400 Subject: [PATCH] refactor(db): streamline model imports and remove unused model exports - Removed the export of models from the database connection module to simplify the structure. - Updated various files to import models directly from the new centralized models module. - Ensured consistency across the codebase by replacing mongoose model references with the new import paths. --- api/db/index.js | 4 ++-- api/db/indexSync.js | 3 ++- api/db/models.js | 5 +++++ api/models/Action.js | 2 +- api/models/Agent.js | 2 +- api/models/Agent.spec.js | 2 +- api/models/Assistant.js | 2 +- api/models/Banner.js | 2 +- api/models/Conversation.js | 2 +- api/models/ConversationTag.js | 4 ++-- api/models/File.js | 2 +- api/models/Message.js | 2 +- api/models/Preset.js | 2 +- api/models/Project.js | 2 +- api/models/Prompt.js | 4 ++-- api/models/Role.js | 2 +- api/models/Role.spec.js | 2 +- api/models/Share.js | 4 ++-- api/models/Token.js | 2 +- api/models/ToolCall.js | 2 +- api/models/Transaction.js | 4 ++-- api/models/Transaction.spec.js | 2 +- api/models/balanceMethods.js | 2 +- api/models/convoStructure.spec.js | 2 +- api/models/inviteUser.js | 2 +- api/models/spendTokens.js | 1 - api/models/spendTokens.spec.js | 4 ++-- api/server/controllers/AuthController.js | 4 ++-- api/server/controllers/Balance.js | 2 +- api/server/controllers/TwoFactorController.js | 2 +- api/server/controllers/UserController.js | 8 ++++---- .../controllers/auth/TwoFactorAuthController.js | 2 +- api/server/index.js | 3 ++- api/server/middleware/checkBan.js | 2 +- api/server/middleware/setBalanceConfig.js | 2 +- api/server/routes/messages.js | 2 +- api/server/services/PluginService.js | 2 +- api/server/services/UserService.js | 2 +- api/server/services/twoFactorService.js | 2 +- api/strategies/appleStrategy.test.js | 2 +- api/strategies/jwtStrategy.js | 2 +- api/strategies/ldapStrategy.js | 2 +- api/strategies/localStrategy.js | 2 +- api/strategies/openidStrategy.js | 3 +-- api/strategies/openidStrategy.spec.js | 12 +----------- config/connect.js | 2 +- 46 files changed, 61 insertions(+), 66 deletions(-) create mode 100644 api/db/models.js diff --git a/api/db/index.js b/api/db/index.js index 13531d2d27..5c29902f69 100644 --- a/api/db/index.js +++ b/api/db/index.js @@ -3,6 +3,6 @@ const { createModels } = require('@librechat/data-schemas'); const { connectDb } = require('./connect'); const indexSync = require('./indexSync'); -const models = createModels(mongoose); +createModels(mongoose); -module.exports = { connectDb, indexSync, ...models }; +module.exports = { connectDb, indexSync }; diff --git a/api/db/indexSync.js b/api/db/indexSync.js index 285912ade5..28f6200136 100644 --- a/api/db/indexSync.js +++ b/api/db/indexSync.js @@ -1,8 +1,9 @@ const mongoose = require('mongoose'); const { MeiliSearch } = require('meilisearch'); -const { isEnabled } = require('~/server/utils'); const { logger } = require('@librechat/data-schemas'); +const { isEnabled } = require('~/server/utils'); + const Conversation = mongoose.models.Conversation; const Message = mongoose.models.Message; diff --git a/api/db/models.js b/api/db/models.js new file mode 100644 index 0000000000..fca1327446 --- /dev/null +++ b/api/db/models.js @@ -0,0 +1,5 @@ +const mongoose = require('mongoose'); +const { createModels } = require('@librechat/data-schemas'); +const models = createModels(mongoose); + +module.exports = { ...models }; diff --git a/api/models/Action.js b/api/models/Action.js index 4de66bdfa3..54e86bf7d5 100644 --- a/api/models/Action.js +++ b/api/models/Action.js @@ -1,5 +1,5 @@ const mongoose = require('mongoose'); -const Action = mongoose.models.Action; +const Action = require('~/db/models').Action; /** * Update an action with new data without overwriting existing properties, diff --git a/api/models/Agent.js b/api/models/Agent.js index 358e3d855b..4513948c46 100644 --- a/api/models/Agent.js +++ b/api/models/Agent.js @@ -14,7 +14,7 @@ const { const getLogStores = require('~/cache/getLogStores'); const { getActions } = require('./Action'); -const Agent = mongoose.models.Agent; +const Agent = require('~/db/models').Agent; /** * Create an agent with the provided data. diff --git a/api/models/Agent.spec.js b/api/models/Agent.spec.js index d9a2e5c0e5..27219cd7a3 100644 --- a/api/models/Agent.spec.js +++ b/api/models/Agent.spec.js @@ -21,7 +21,7 @@ const { removeAgentResourceFiles, } = require('./Agent'); -const Agent = mongoose.models.Agent; +const Agent = require('~/db/models').Agent; describe('Agent Resource File Operations', () => { let mongoServer; diff --git a/api/models/Assistant.js b/api/models/Assistant.js index e69bc714fc..0eda305cc0 100644 --- a/api/models/Assistant.js +++ b/api/models/Assistant.js @@ -1,5 +1,5 @@ const mongoose = require('mongoose'); -const Assistant = mongoose.models.Assistant; +const Assistant = require('~/db/models').Assistant; /** * Update an assistant with new data without overwriting existing properties, diff --git a/api/models/Banner.js b/api/models/Banner.js index c7f4a1d2b8..c43b1350d8 100644 --- a/api/models/Banner.js +++ b/api/models/Banner.js @@ -1,7 +1,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); -const Banner = mongoose.models.Banner; +const Banner = require('~/db/models').Banner; /** * Retrieves the current active banner. diff --git a/api/models/Conversation.js b/api/models/Conversation.js index 5cbd2a9bdb..d1950d56ef 100644 --- a/api/models/Conversation.js +++ b/api/models/Conversation.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); const { getMessages, deleteMessages } = require('./Message'); -const Conversation = mongoose.models.Conversation; +const Conversation = require('~/db/models').Conversation; /** * Searches for a conversation by conversationId and returns a lean document with only conversationId and user. diff --git a/api/models/ConversationTag.js b/api/models/ConversationTag.js index 985367689a..883fe3348b 100644 --- a/api/models/ConversationTag.js +++ b/api/models/ConversationTag.js @@ -1,8 +1,8 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); -const ConversationTag = mongoose.models.ConversationTag; -const Conversation = mongoose.models.Conversation; +const ConversationTag = require('~/db/models').ConversationTag; +const Conversation = require('~/db/models').Conversation; /** * Retrieves all conversation tags for a user. diff --git a/api/models/File.js b/api/models/File.js index 354feb79e5..82d16f7d4a 100644 --- a/api/models/File.js +++ b/api/models/File.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); const { EToolResources } = require('librechat-data-provider'); -const File = mongoose.models.File; +const File = require('~/db/models').File; /** * Finds a file by its file_id with additional query options. diff --git a/api/models/Message.js b/api/models/Message.js index 28bdf56d4f..4fdb279086 100644 --- a/api/models/Message.js +++ b/api/models/Message.js @@ -2,7 +2,7 @@ const { z } = require('zod'); const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); -const Message = mongoose.models.Message; +const Message = require('~/db/models').Message; const idSchema = z.string().uuid(); /** diff --git a/api/models/Preset.js b/api/models/Preset.js index eda3feddf0..e589239d6f 100644 --- a/api/models/Preset.js +++ b/api/models/Preset.js @@ -1,7 +1,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); -const Preset = mongoose.models.Preset; +const Preset = require('~/db/models').Preset; const getPreset = async (user, presetId) => { try { diff --git a/api/models/Project.js b/api/models/Project.js index 313e165b48..448c482b3f 100644 --- a/api/models/Project.js +++ b/api/models/Project.js @@ -1,7 +1,7 @@ const mongoose = require('mongoose'); const { GLOBAL_PROJECT_NAME } = require('librechat-data-provider').Constants; -const Project = mongoose.models.Project; +const Project = require('~/db/models').Project; /** * Retrieve a project by ID and convert the found project document to a plain object. diff --git a/api/models/Prompt.js b/api/models/Prompt.js index c6807ba3ef..d5f68f0d42 100644 --- a/api/models/Prompt.js +++ b/api/models/Prompt.js @@ -10,8 +10,8 @@ const { } = require('./Project'); const { escapeRegExp } = require('~/server/utils'); -const PromptGroup = mongoose.models.PromptGroup; -const Prompt = mongoose.models.Prompt; +const PromptGroup = require('~/db/models').PromptGroup; +const Prompt = require('~/db/models').Prompt; /** * Create a pipeline for the aggregation to get prompt groups diff --git a/api/models/Role.js b/api/models/Role.js index 0532fcca4a..23994d5be3 100644 --- a/api/models/Role.js +++ b/api/models/Role.js @@ -10,7 +10,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); const getLogStores = require('~/cache/getLogStores'); -const Role = mongoose.models.Role; +const Role = require('~/db/models').Role; /** * Retrieve a role by name and convert the found role document to a plain object. diff --git a/api/models/Role.spec.js b/api/models/Role.spec.js index 201834ea93..971da9c723 100644 --- a/api/models/Role.spec.js +++ b/api/models/Role.spec.js @@ -9,7 +9,7 @@ const { const { getRoleByName, updateAccessPermissions, initializeRoles } = require('~/models/Role'); const getLogStores = require('~/cache/getLogStores'); -const Role = mongoose.models.Role; +const Role = require('~/db/models').Role; // Mock the cache jest.mock('~/cache/getLogStores', () => diff --git a/api/models/Share.js b/api/models/Share.js index 1f50c7ce90..b48e06595b 100644 --- a/api/models/Share.js +++ b/api/models/Share.js @@ -4,8 +4,8 @@ const { Constants } = require('librechat-data-provider'); const { logger } = require('@librechat/data-schemas'); const { getMessages } = require('./Message'); -const Conversation = mongoose.models.Conversation; -const SharedLink = mongoose.models.SharedLink; +const Conversation = require('~/db/models').Conversation; +const SharedLink = require('~/db/models').SharedLink; class ShareServiceError extends Error { constructor(message, code) { diff --git a/api/models/Token.js b/api/models/Token.js index b64ae984eb..a9affbb638 100644 --- a/api/models/Token.js +++ b/api/models/Token.js @@ -1,7 +1,7 @@ const mongoose = require('mongoose'); const { encryptV2 } = require('~/server/utils/crypto'); -const Token = mongoose.models.Token; +const Token = require('~/db/models').Token; /** * Handles the OAuth token by creating or updating the token. diff --git a/api/models/ToolCall.js b/api/models/ToolCall.js index cce4c6e6a0..371128dd1c 100644 --- a/api/models/ToolCall.js +++ b/api/models/ToolCall.js @@ -1,6 +1,6 @@ const mongoose = require('mongoose'); -const ToolCall = mongoose.models.ToolCall; +const ToolCall = require('~/db/models').ToolCall; /** * Create a new tool call diff --git a/api/models/Transaction.js b/api/models/Transaction.js index 9a71de14e0..622a2cd1c8 100644 --- a/api/models/Transaction.js +++ b/api/models/Transaction.js @@ -3,8 +3,8 @@ const { logger } = require('@librechat/data-schemas'); const { getBalanceConfig } = require('~/server/services/Config'); const { getMultiplier, getCacheMultiplier } = require('./tx'); -const Transaction = mongoose.models.Transaction; -const Balance = mongoose.models.Balance; +const Transaction = require('~/db/models').Transaction; +const Balance = require('~/db/models').Balance; const cancelRate = 1.15; diff --git a/api/models/Transaction.spec.js b/api/models/Transaction.spec.js index 58bfbece0c..7eb644e2d7 100644 --- a/api/models/Transaction.spec.js +++ b/api/models/Transaction.spec.js @@ -4,7 +4,7 @@ const { spendTokens, spendStructuredTokens } = require('./spendTokens'); const { getBalanceConfig } = require('~/server/services/Config'); const { getMultiplier, getCacheMultiplier } = require('./tx'); const { createTransaction } = require('./Transaction'); -const Balance = mongoose.models.Balance; +const Balance = require('~/db/models').Balance; // Mock the custom config module so we can control the balance flag. jest.mock('~/server/services/Config'); diff --git a/api/models/balanceMethods.js b/api/models/balanceMethods.js index b911c1ab19..8028fee737 100644 --- a/api/models/balanceMethods.js +++ b/api/models/balanceMethods.js @@ -5,7 +5,7 @@ const { createAutoRefillTransaction } = require('./Transaction'); const { logViolation } = require('~/cache'); const { getMultiplier } = require('./tx'); -const Balance = mongoose.models.Balance; +const Balance = require('~/db/models').Balance; function isInvalidDate(date) { return isNaN(date); diff --git a/api/models/convoStructure.spec.js b/api/models/convoStructure.spec.js index 6d660f9176..349e92c1f8 100644 --- a/api/models/convoStructure.spec.js +++ b/api/models/convoStructure.spec.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { MongoMemoryServer } = require('mongodb-memory-server'); const { getMessages, bulkSaveMessages } = require('./Message'); -const Message = mongoose.models.Message; +const Message = require('~/db/models').Message; // Original version of buildTree function function buildTree({ messages, fileMap }) { diff --git a/api/models/inviteUser.js b/api/models/inviteUser.js index d2e452737a..1263e3091c 100644 --- a/api/models/inviteUser.js +++ b/api/models/inviteUser.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); const { getRandomValues, hashToken } = require('~/server/utils/crypto'); -const Token = mongoose.models.Token; +const Token = require('~/db/models').Token; /** * @module inviteUser diff --git a/api/models/spendTokens.js b/api/models/spendTokens.js index d830f46eab..834f740926 100644 --- a/api/models/spendTokens.js +++ b/api/models/spendTokens.js @@ -1,5 +1,4 @@ const { logger } = require('~/config'); -const db = require('db/connect'); const { createTransaction, createStructuredTransaction } = require('./Transaction'); /** * Creates up to two transactions to record the spending of tokens. diff --git a/api/models/spendTokens.spec.js b/api/models/spendTokens.spec.js index 2f31813597..929045af2f 100644 --- a/api/models/spendTokens.spec.js +++ b/api/models/spendTokens.spec.js @@ -2,8 +2,8 @@ const mongoose = require('mongoose'); const { MongoMemoryServer } = require('mongodb-memory-server'); const { spendTokens, spendStructuredTokens } = require('./spendTokens'); const { createTransaction, createAutoRefillTransaction } = require('./Transaction'); -const Transaction = mongoose.models.Transaction; -const Balance = mongoose.models.Balance; +const Transaction = require('~/db/models').Transaction; +const Balance = require('~/db/models').Balance; // Mock the logger to prevent console output during tests jest.mock('~/config', () => ({ diff --git a/api/server/controllers/AuthController.js b/api/server/controllers/AuthController.js index f6c96f7a40..8104a1c1d1 100644 --- a/api/server/controllers/AuthController.js +++ b/api/server/controllers/AuthController.js @@ -13,8 +13,8 @@ const { const { getOpenIdConfig } = require('~/strategies'); const { isEnabled } = require('~/server/utils'); -const Session = mongoose.models.Session; -const User = mongoose.models.User; +const Session = require('~/db/models').Session; +const User = require('~/db/models').User; const registrationController = async (req, res) => { try { diff --git a/api/server/controllers/Balance.js b/api/server/controllers/Balance.js index bc1b9addda..7114dec73c 100644 --- a/api/server/controllers/Balance.js +++ b/api/server/controllers/Balance.js @@ -1,6 +1,6 @@ const mongoose = require('mongoose'); -const Balance = mongoose.models.Balance; +const Balance = require('~/db/models').Balance; async function balanceController(req, res) { const balanceData = await Balance.findOne( diff --git a/api/server/controllers/TwoFactorController.js b/api/server/controllers/TwoFactorController.js index 12849d3b58..a8db894ff5 100644 --- a/api/server/controllers/TwoFactorController.js +++ b/api/server/controllers/TwoFactorController.js @@ -10,7 +10,7 @@ const { const { encryptV3 } = require('~/server/utils/crypto'); const safeAppTitle = (process.env.APP_TITLE || 'LibreChat').replace(/\s+/g, ''); -const User = mongoose.models.User; +const User = require('~/db/models').User; /** * Enable 2FA for the user by generating a new TOTP secret and backup codes. diff --git a/api/server/controllers/UserController.js b/api/server/controllers/UserController.js index ecc7021ba5..09460be5ec 100644 --- a/api/server/controllers/UserController.js +++ b/api/server/controllers/UserController.js @@ -15,10 +15,10 @@ const { processDeleteRequest } = require('~/server/services/Files/process'); const { deleteAllSharedLinks } = require('~/models/Share'); const { deleteToolCalls } = require('~/models/ToolCall'); -const Transaction = mongoose.models.Transaction; -const Session = mongoose.models.Session; -const Balance = mongoose.models.Balance; -const User = mongoose.models.User; +const Transaction = require('~/db/models').Transaction; +const Session = require('~/db/models').Session; +const Balance = require('~/db/models').Balance; +const User = require('~/db/models').User; const getUserController = async (req, res) => { /** @type {MongoUser} */ diff --git a/api/server/controllers/auth/TwoFactorAuthController.js b/api/server/controllers/auth/TwoFactorAuthController.js index 1f6bfb6d25..d3c14b9a83 100644 --- a/api/server/controllers/auth/TwoFactorAuthController.js +++ b/api/server/controllers/auth/TwoFactorAuthController.js @@ -8,7 +8,7 @@ const { const { setAuthTokens } = require('~/server/services/AuthService'); const { logger } = require('@librechat/data-schemas'); -const User = mongoose.models.User; +const User = require('~/db/models').User; /** * Verifies the 2FA code during login using a temporary token. diff --git a/api/server/index.js b/api/server/index.js index 8b3a5e41fb..ed770f7703 100644 --- a/api/server/index.js +++ b/api/server/index.js @@ -9,8 +9,9 @@ const passport = require('passport'); const mongoSanitize = require('express-mongo-sanitize'); const fs = require('fs'); const cookieParser = require('cookie-parser'); +const { connectDb, indexSync } = require('~/db'); + const { jwtLogin, passportLogin } = require('~/strategies'); -const { connectDb, indexSync, getModels } = require('db'); const { isEnabled } = require('~/server/utils'); const { ldapLogin } = require('~/strategies'); const { logger } = require('~/config'); diff --git a/api/server/middleware/checkBan.js b/api/server/middleware/checkBan.js index 7797f68693..7e4301e227 100644 --- a/api/server/middleware/checkBan.js +++ b/api/server/middleware/checkBan.js @@ -8,7 +8,7 @@ const keyvMongo = require('~/cache/keyvMongo'); const denyRequest = require('./denyRequest'); const { getLogStores } = require('~/cache'); -const User = mongoose.models.User; +const User = require('~/db/models').User; const banCache = new Keyv({ store: keyvMongo, namespace: ViolationTypes.BAN, ttl: 0 }); const message = 'Your account has been temporarily banned due to violations of our service.'; diff --git a/api/server/middleware/setBalanceConfig.js b/api/server/middleware/setBalanceConfig.js index ec7f9ce6dc..3ee6e271f1 100644 --- a/api/server/middleware/setBalanceConfig.js +++ b/api/server/middleware/setBalanceConfig.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { logger } = require('@librechat/data-schemas'); const { getBalanceConfig } = require('~/server/services/Config'); -const Balance = mongoose.models.Balance; +const Balance = require('~/db/models').Balance; /** * Middleware to synchronize user balance settings with current balance configuration. diff --git a/api/server/routes/messages.js b/api/server/routes/messages.js index 47f3e2ef65..f1acc62ec7 100644 --- a/api/server/routes/messages.js +++ b/api/server/routes/messages.js @@ -16,7 +16,7 @@ const { cleanUpPrimaryKeyValue } = require('~/lib/utils/misc'); const { getConvosQueried } = require('~/models/Conversation'); const { countTokens } = require('~/server/utils'); -const Message = mongoose.models.Message; +const Message = require('~/db/models').Message; const router = express.Router(); router.use(requireJwtAuth); diff --git a/api/server/services/PluginService.js b/api/server/services/PluginService.js index d05b5d50f3..d8a9f43952 100644 --- a/api/server/services/PluginService.js +++ b/api/server/services/PluginService.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { encrypt, decrypt } = require('~/server/utils/'); const { logger } = require('~/config'); -const PluginAuth = mongoose.models.PluginAuth; +const PluginAuth = require('~/db/models').PluginAuth; /** * Asynchronously retrieves and decrypts the authentication value for a user's plugin, based on a specified authentication field. diff --git a/api/server/services/UserService.js b/api/server/services/UserService.js index 7b78c3489a..ca5cd7ca5f 100644 --- a/api/server/services/UserService.js +++ b/api/server/services/UserService.js @@ -4,7 +4,7 @@ const { ErrorTypes } = require('librechat-data-provider'); const { encrypt, decrypt } = require('~/server/utils/crypto'); const { updateUser } = require('~/models'); -const Key = mongoose.models.Key; +const Key = require('~/db/models').Key; /** * Updates the plugins for a user based on the action specified (install/uninstall). diff --git a/api/server/services/twoFactorService.js b/api/server/services/twoFactorService.js index de055e0745..b12cecdaf3 100644 --- a/api/server/services/twoFactorService.js +++ b/api/server/services/twoFactorService.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose'); const { webcrypto } = require('node:crypto'); const { hashBackupCode, decryptV3, decryptV2 } = require('~/server/utils/crypto'); -const User = mongoose.models.User; +const User = require('~/db/models').User; // Base32 alphabet for TOTP secret encoding. const BASE32_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; diff --git a/api/strategies/appleStrategy.test.js b/api/strategies/appleStrategy.test.js index 58b449024f..3186e27bc7 100644 --- a/api/strategies/appleStrategy.test.js +++ b/api/strategies/appleStrategy.test.js @@ -7,7 +7,7 @@ const { createSocialUser, handleExistingUser } = require('./process'); const { isEnabled } = require('~/server/utils'); const socialLogin = require('./socialLogin'); -const User = mongoose.models.User; +const User = require('~/db/models').User; // Mocking external dependencies jest.mock('jsonwebtoken'); diff --git a/api/strategies/jwtStrategy.js b/api/strategies/jwtStrategy.js index 379b581287..86f2ff7147 100644 --- a/api/strategies/jwtStrategy.js +++ b/api/strategies/jwtStrategy.js @@ -3,7 +3,7 @@ const { logger } = require('@librechat/data-schemas'); const { SystemRoles } = require('librechat-data-provider'); const { Strategy: JwtStrategy, ExtractJwt } = require('passport-jwt'); -const User = mongoose.models.User; +const User = require('~/db/models').User; // JWT strategy const jwtLogin = () => diff --git a/api/strategies/ldapStrategy.js b/api/strategies/ldapStrategy.js index 5ab2981b13..48abf57d36 100644 --- a/api/strategies/ldapStrategy.js +++ b/api/strategies/ldapStrategy.js @@ -7,7 +7,7 @@ const { createUser, findUser, updateUser } = require('~/models'); const { getBalanceConfig } = require('~/server/services/Config'); const { isEnabled } = require('~/server/utils'); -const User = mongoose.models.User; +const User = require('~/db/models').User; const { LDAP_URL, diff --git a/api/strategies/localStrategy.js b/api/strategies/localStrategy.js index 059442930c..03453ace9a 100644 --- a/api/strategies/localStrategy.js +++ b/api/strategies/localStrategy.js @@ -6,7 +6,7 @@ const { isEnabled, checkEmailConfig } = require('~/server/utils'); const { comparePassword } = require('~/models'); const { loginSchema } = require('./validators'); -const User = mongoose.models.User; +const User = require('~/db/models').User; // Unix timestamp for 2024-06-07 15:20:18 Eastern Time const verificationEnabledTimestamp = 1717788018; diff --git a/api/strategies/openidStrategy.js b/api/strategies/openidStrategy.js index f5aa93b7df..82ead13a3c 100644 --- a/api/strategies/openidStrategy.js +++ b/api/strategies/openidStrategy.js @@ -11,7 +11,7 @@ const { getStrategyFunctions } = require('~/server/services/Files/strategies'); const getLogStores = require('~/cache/getLogStores'); const { isEnabled } = require('~/server/utils'); -const User = mongoose.models.User; +const User = require('~/db/models').User; /** * @typedef {import('openid-client').ClientMetadata} ClientMetadata @@ -38,7 +38,6 @@ class CustomOpenIDStrategy extends OpenIDStrategy { } } -const db = require('db/connect'); const { getBalanceConfig } = require('~/server/services/Config'); let crypto; diff --git a/api/strategies/openidStrategy.spec.js b/api/strategies/openidStrategy.spec.js index c4a26f937a..18137a6fc3 100644 --- a/api/strategies/openidStrategy.spec.js +++ b/api/strategies/openidStrategy.spec.js @@ -17,16 +17,6 @@ const mockModels = { }, }; -jest.mock('~/db/connect', () => { - return { - getModels: jest.fn(() => mockModels), - connectDb: jest.fn(), - get models() { - return mockModels; - }, - }; -}); - jest.mock('~/server/services/Config', () => ({ getBalanceConfig: jest.fn(), })); @@ -132,7 +122,7 @@ describe('setupOpenId', () => { picture: 'https://example.com/avatar.png', }), }; - const User = mongoose.models.User; + const User = require('~/db/models').User; beforeEach(async () => { // Clear previous mock calls and reset implementations jest.clearAllMocks(); diff --git a/config/connect.js b/config/connect.js index 5ee72dd022..6026c3e7b6 100644 --- a/config/connect.js +++ b/config/connect.js @@ -5,7 +5,7 @@ const moduleAlias = require('module-alias'); const basePath = path.resolve(__dirname, '..', 'api'); moduleAlias.addAlias('~', basePath); -const { connectDb } = require('db/connect'); +const { connectDb } = require('~/db/connect'); require('./helpers'); async function connect() {