/**
* Paginates a list of user records for maintenance tasks.
*
* @param {Array} records - The array of user records.
* @param {number} pageSize - The number of records per page.
* @param {number} pageNumber - The page number to retrieve (1-based).
* @returns {object} An object containing the paginated records, total pages, and total records.
*/
function paginateRecords(records, pageSize, pageNumber) {
if (!Array.isArray(records)) {
console.error("Records must be an array.");
return { records: [], totalPages: 0, totalRecords: 0 };
}
if (typeof pageSize !== 'number' || pageSize <= 0) {
console.error("Page size must be a positive number.");
return { records: [], totalPages: 0, totalRecords: 0 };
}
if (typeof pageNumber !== 'number' || pageNumber <= 0) {
console.error("Page number must be a positive number.");
return { records: [], totalPages: 0, totalRecords: 0 };
}
const startIndex = (pageNumber - 1) * pageSize; // Calculate the starting index
const endIndex = startIndex + pageSize; // Calculate the ending index
const paginatedRecords = records.slice(startIndex, endIndex); // Extract the records for the current page
const totalRecords = records.length;
const totalPages = Math.ceil(totalRecords / pageSize); // Calculate the total number of pages
return {
records: paginatedRecords,
totalPages: totalPages,
totalRecords: totalRecords
};
}
Add your comment