import { Request, Response } from "express"; import { User } from "../models/user"; import { ADMIN_MAX_USERS_PER_PAGE, MONGODB_IGNORED_FIELDS_USER, } from "../utils/constants"; export async function GetAllUsers(req: Request, res: Response) { try { const pageSize = ADMIN_MAX_USERS_PER_PAGE; // Get the current page number (default: 1) const page = parseInt(req.query.page as string, pageSize) || 1; // Calculate the skipping (skip) based on the current page const skip = (page - 1) * pageSize; // Get the total number of users const totalUsers = await User.countDocuments({}).lean(); // Calculate the total number of pages const totalPages = Math.ceil(totalUsers / pageSize); // Query for the current page with limit and skip const users = await User.find({}) .lean() .select(MONGODB_IGNORED_FIELDS_USER) .skip(skip) .limit(pageSize); // Respond with users and page information res.json({ users, totalPages, }); } catch (error) { console.error("Error fetching users:", error); res.status(500).json({ error: "Internal Server Error" }); } }