fix: Resolve duplicated display of users on online/offline dashboard

pull/22/head
adriano 2024-01-29 14:17:42 -03:00
parent 4edddd2dbb
commit 5bfaa7f733
2 changed files with 12 additions and 5 deletions

View File

@ -66,7 +66,7 @@ export const reportUserService = async (req: Request, res: Response): Promise<Re
// let usersProfile = await ListUserParamiterService({ profile: 'user' })
let usersProfile = await ListUserParamiterService({
profile: "user",
profiles: ["user", "supervisor"],
raw: true
});

View File

@ -2,15 +2,17 @@ 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<string>;
raw?: boolean;
userIds?: string | number
userIds?: string | number;
}
const ListUser = async ({ profile, userId, raw, userIds }: Request): Promise<User[]> => {
const ListUser = async ({ profile, userId, raw, userIds, profiles }: Request): Promise<User[]> => {
let where_clause = {};
if (userId && profile) {
@ -29,6 +31,10 @@ const ListUser = async ({ profile, userId, raw, userIds }: Request): Promise<Use
where_clause = {
id: { [Op.in]: userIds }
};
} else if (profiles) {
where_clause = {
profile: { [Op.in]: profiles }
};
}
const users = await User.findAll({
@ -38,9 +44,10 @@ const ListUser = async ({ profile, userId, raw, userIds }: Request): Promise<Use
include: [
{ model: Queue, as: "queues", attributes: ["id", "name", "color"] }
],
],
order: [["id", "ASC"]]
order: [["id", "ASC"]],
group: ["User.id"]
});
return users;