/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/list.js (2139B)
module.exports = function ({ db, logger }) { const { NotFound, BadRequest } = require('../../responseModels/errors') const { isSet, isEmail, isPhone, isEmpty, minLength, isNumber } = require('../../utils/validator.util') const { UserModel, UsersListModel } = require('../../responseModels') const { Op } = require('sequelize') return async (req, res, next) => { logger.child({ path: req.path, request: req.query }).info() let t1 = performance.now() try { const { roleId, phone, email, name, limit, page } = req.query let required = { emails: false, phones: false, companies: false, branches: false } let include = [ { model: db.company, as: 'userCompanies' }, { model: db.company, as: 'clientCompanies' }, { model: db.branch, as: 'userBranches' }, ] let where = {} let wherePhone = {} let whereEmail = {} if (isSet(name)) { whereEmail['name'] = { [Op.like]: `%${name}%` } } if (isSet(email)) { whereEmail['email'] = { [Op.like]: `%${email}%` } required.emails = true } if (isSet(roleId)) { where['roleId'] = parseInt(roleId) } if (isSet(phone)) { wherePhone['phone'] = { [Op.like]: `%${phone}%` } } required.phones = false include.push({ model: db.role, }) include.push({ model: db.userPhone, required: required.phones, as: 'userPhones', where: wherePhone }) include.push({ model: db.userEmail, required: required.emails, as: 'userEmails', where: whereEmail }) let offset = page ? (page - 1) * (limit || 10) : 0 const count = await db.user.count({ // include: include, where, }); const rows = await db.user.findAll({ include: include, where, offset, order: [ ['createdAt', 'DESC'], ], limit: parseInt(limit) || 10 }) if (!rows || rows.length == 0) { throw new NotFound({ lang: req.user?.languageCode }) } const time = performance.now() - t1 return res.status(200).json(new UsersListModel({ users: rows, page, limit, count, time })) } catch (err) { next(err) } } }