This commit is contained in:
2025-11-11 11:29:39 +03:30
parent 5dd7a6588e
commit d4db672672
9 changed files with 76 additions and 20 deletions
@@ -0,0 +1,39 @@
import { EntityRepository, FilterQuery } from "@mikro-orm/postgresql";
import { PaginationUtils } from "../../utils/services/pagination.utils";
import { UserListQueryDto } from "../DTO/user-list-query.dto";
import { User } from "../entities/user.entity";
export class UserRepository extends EntityRepository<User> {
async getUserListForAdmin(businessId: string, queryDto: UserListQueryDto) {
const { limit, skip } = PaginationUtils(queryDto);
const whereClause: FilterQuery<User> = {
business: { id: businessId },
emailEnabled: true,
deletedAt: null,
};
if (queryDto.q) {
whereClause.$or = [
{ userName: { $like: `%${queryDto.q}%` } },
{ emailAddress: { $like: `%${queryDto.q}%` } },
{ displayName: { $like: `%${queryDto.q}%` } },
];
}
if (queryDto.isActive) {
console.log(queryDto.isActive);
whereClause.isActive = queryDto.isActive === 1;
}
return this.findAndCount(whereClause, {
exclude: ["password"],
populate: ["domain", "business"],
limit,
offset: skip,
orderBy: { createdAt: "DESC" },
});
}
}