/var/www/greso.tech/server/nsm/controllers/user
NameSizeModeActions
add_email.js21620644editdlrm
add_phone.js16810644editdlrm
create.js26800644editdlrm
delete.js8230644editdlrm
details.js4630644editdlrm
edit.js26050644editdlrm
email.js10980644editdlrm
list.js21390644editdlrm
login_history.js13980644editdlrm
profile.js13150644editdlrm
remove_email.js8360644editdlrm
remove_phone.js8360644editdlrm
Edit: /var/www/greso.tech/server/nsm/controllers/user/add_email.js (2162B)
module.exports = function ({ db, logger }) { const { NotFound, BadRequest } = require('../../responseModels/errors') const { isSet, isEmail, isPhone, isEmpty, minLength, isNumber } = require('../../utils/validator.util') const bcrypt = require('bcryptjs') return async (req, res, next) => { logger.child({ path: req.path, request: req.query }).info() let t1 = performance.now() try { var { name, email, id, password, signature, user_id } = req.body if (!isSet(name) || isEmpty(name) || !minLength(name, 2)) { throw new BadRequest({ code: 2005, lang: req.user?.languageCode }) } if (!isSet(email) || !isEmail(email)) { throw new BadRequest({ code: 1003, lang: req.user?.languageCode }) } if (isSet(id) && isEmpty(id)) { throw new BadRequest({ code: 2007, lang: req.user?.languageCode }) } if (!isSet(signature)) { signature = '' } if (!isSet(user_id) || isEmpty(user_id) || !minLength(user_id, 32)) { throw new BadRequest({ code: 2011, lang: req.user?.languageCode }) } const foundEmail = await db.userEmail.findOne({ where: { email: email } }) if (foundEmail) { throw new BadRequest({ code: 1008, lang: req.user?.languageCode }) } const user = await db.user.findOne({ where: { id: user_id }, }) if (!user) { throw new NotFound({ lang: req.user?.languageCode }) } let u = { name, email, signature, userId: user_id } if (isSet(password) && !isEmpty(password)) { const salt = await bcrypt.genSalt(10) const passwordHash = await bcrypt.hash(password, salt) u.passwordHash = passwordHash; } const new_email = await db.userEmail.create(u) const time = performance.now() - t1 return res.status(200).json({ status: 'success', id: new_email.id, time }) } catch (err) { next(err) } } }