projeto-hit/backend/src/services/UserServices/ListUsersOnlineOfflineServi...

72 lines
1.6 KiB
TypeScript
Raw Normal View History

import UserOnlineTime from "../../models/UserOnlineTime";
import { Op, Sequelize } from "sequelize";
interface Request {
userId?: string | number;
status?: string;
date: string;
}
const ListUserOnlineOffline = async ({date, userId, status}: Request): Promise<UserOnlineTime[]> => {
let where_clause = {}
if(userId && status){
where_clause = {
[Op.and]: [
{userId: userId},
{status: status},
{
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
},
]
}
}
else if(userId){
where_clause = {
[Op.and]: [
{userId: userId},
{
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
},
]
}
}
else if(status){
where_clause = {
[Op.and]: [
{status: status},
{
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
},
]
}
}
else{
where_clause = {
[Op.and]: [
{
"$createdAt$": Sequelize.where(Sequelize.fn("date", Sequelize.col("createdAt")), `${date}`)
},
]
}
}
const users = await UserOnlineTime.findAll({
where: where_clause,
raw:true,
order: [["id", "ASC"]],
})
return users;
};
export default ListUserOnlineOffline;