import { Op, Sequelize } from "sequelize"; import Queue from "../../models/Queue"; import User from "../../models/User"; import UserQueue from "../../models/UserQueue"; import { List } from "whatsapp-web.js" interface Request { userId?: string | number; profile?: string; profiles?: Array; raw?: boolean; userIds?: string | number; } const ListUser = async ({ profile, userId, raw, userIds, profiles }: Request): Promise => { let where_clause = {}; if (userId && profile) { where_clause = { [Op.and]: [{ userId: userId }, { profile: profile }] }; } else if (userId) { where_clause = { [Op.and]: [{ userId: userId }] }; } else if (profile) { where_clause = { profile: profile }; } else if (userIds) { where_clause = { id: { [Op.in]: userIds } }; } else if (profiles) { where_clause = { profile: { [Op.in]: profiles } }; } const users = await User.findAll({ where: where_clause, raw, attributes: ["id", "name", "email", "positionCompany"], include: [ { model: Queue, as: "queues", attributes: ["id", "name", "color"] } ], order: [["id", "ASC"]], group: ["User.id"] }); return users; }; export default ListUser;