From 318b62cd3beb96944ebec2b78b41deaf0cd597f7 Mon Sep 17 00:00:00 2001 From: MuhammadKhalilzadeh Date: Fri, 28 Jun 2024 13:46:05 +0330 Subject: [PATCH] fix commit --- Server/controllers/authController.js | 11 +---------- Server/db/MongoDB.js | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/Server/controllers/authController.js b/Server/controllers/authController.js index ae03c25b6..aef81f7ec 100644 --- a/Server/controllers/authController.js +++ b/Server/controllers/authController.js @@ -237,7 +237,7 @@ const resetPasswordController = async (req, res, next) => { const deleteUserController = async (req, res, next) => { try { - // Validate user ID + // Validate user await editUserParamValidation.validateAsync(req.params); // Check if the user exists @@ -268,12 +268,3 @@ module.exports = { resetPasswordController, deleteUserController, }; - -module.exports = { - registerController, - loginController, - userEditController, - recoveryRequestController, - validateRecoveryTokenController, - resetPasswordController, -}; diff --git a/Server/db/MongoDB.js b/Server/db/MongoDB.js index e67437c16..398e0d824 100644 --- a/Server/db/MongoDB.js +++ b/Server/db/MongoDB.js @@ -113,6 +113,29 @@ const deleteUser = async (req, res) => { } }; +/** + * Request a recovery token + * @async + * @param {Express.Request} req + * @param {Express.Response} res + * @returns {Promise} + * @throws {Error} + */ +const requestRecoveryToken = async (req, res) => { + try { + // Delete any existing tokens + await RecoveryToken.deleteMany({ email: req.body.email }); + let recoveryToken = new RecoveryToken({ + email: req.body.email, + token: crypto.randomBytes(32).toString("hex"), + }); + await recoveryToken.save(); + return recoveryToken; + } catch (error) { + throw error; + } +}; + const validateRecoveryToken = async (req, res) => { try { const candidateToken = req.body.recoveryToken; @@ -495,6 +518,7 @@ module.exports = { insertUser, getUserByEmail, updateUser, + deleteUser, requestRecoveryToken, validateRecoveryToken, resetPassword,