/
var
/
www
/
greso.tech
/
server
/
nsm
/
controllers
/
company
/
user
/
/var/www/greso.tech/server/nsm/controllers/company/user
mkdir
upload
Name
Size
Mode
Actions
create.js
1580
0644
edit
dl
rm
delete.js
1280
0644
edit
dl
rm
edit.js
1001
0644
edit
dl
rm
list.js
1755
0644
edit
dl
rm
Edit:
/var/www/greso.tech/server/nsm/controllers/company/user/create.js
(1580B)
module.exports = function ({ db, logger }) { const { NotFound, BadRequest } = require('../../../responseModels/errors') const { isSet, isEmail, isPhone, isEmpty, minLength, isNumber } = require('../../../utils/validator.util') return async (req, res, next) => { logger.child({ path: req.path, request: req.body }).info() let t1 = performance.now() let transaction = await db.sequelize.transaction() try { const { companyId, userId, roleId } = req.body if ( !isSet(companyId) || !isSet(userId) || isEmpty(companyId) || isEmpty(userId) || isEmpty(roleId) ) { throw new BadRequest({ lang: req.user?.languageCode }) } const company = await db.company.findOne({ where: { id: companyId } }) const user = await db.user.findOne({ where: { id: userId } }) const role = await db.role.findOne({ where: { id: roleId } }) if (!user || !company || !role) { throw new NotFound({ lang: req.user?.languageCode }) } let userCompany = await db.companyUsers.findOne({ where: { userId: user.id, companyId: company.id } }) if (userCompany) { // пользователь существует // обновить роль userCompany.roleId = role.id await userCompany.save() } else { await db.companyUsers.create({ userId: user.id, companyId: company.id, roleId: role.id }) } await transaction.commit() const time = performance.now() - t1 return res.status(200).json({ status: 'success', time }) } catch (err) { transaction?.rollback() next(err) } } }
Save
cmd:
run