Tengo una API para restablecer la contraseña. Esta API verifica si hay un usuario con el número de teléfono ingresado y, si hay alguno, verifica si las entradas como fecha de nacimiento, nacionalidad y número de identificación también son correctas y, si lo son, genera una nueva contraseña para el usuario. Sin embargo, estoy usando muchas declaraciones if. Así que mi pregunta es si esto es práctico o debería cambiar mi sintaxis por el bien del rendimiento de la aplicación y las buenas prácticas generales para escribir código estándar.
He adjuntado mi código a continuación con un montón de declaraciones if lol
const asyncHandler = require("express-async-handler"); const User = require("../../models/user") const bcrypt = require("bcrypt"); const jwt = require("jsonwebtoken"); const generateStrongPassword = require('../../utils/generateStrongPassword'); const resetPassword = asyncHandler(async (req, res) => { const { phonenumber, fullname, nationality, nationalidnumber, dateofbirth } = req.body; const user = await User.findOne({ phonenumber: phonenumber }); if (user) { if (fullname != user.fullname) { throw new Error('incorrect fullname'); } if (nationality != user.nationality) { throw new Error('incorrect nationality'); } if (nationalidnumber != user.nationalidnumber) { throw new Error('incorrect national id number '); } if (dateofbirth != user.dateofbirth) { throw new Error('incorrect date of birth'); } // if all validations are passed then // generate new password const newrawpassword = await generateStrongPassword(); console.log(newrawpassword); // harsh the password const salt = await bcrypt.genSalt(10); const newHashedPassword = await bcrypt.hash(newrawpassword, salt); const resetPassword = await User.updateOne({ $set: { password: newHashedPassword } }) res.json('password successfully reseted') } else { throw new Error('No account has that phone number'); } }); module.exports = resetPassword;