1. /**
  2. * Paginates a list of user records for maintenance tasks.
  3. *
  4. * @param {Array} records - The array of user records.
  5. * @param {number} pageSize - The number of records per page.
  6. * @param {number} pageNumber - The page number to retrieve (1-based).
  7. * @returns {object} An object containing the paginated records, total pages, and total records.
  8. */
  9. function paginateRecords(records, pageSize, pageNumber) {
  10. if (!Array.isArray(records)) {
  11. console.error("Records must be an array.");
  12. return { records: [], totalPages: 0, totalRecords: 0 };
  13. }
  14. if (typeof pageSize !== 'number' || pageSize <= 0) {
  15. console.error("Page size must be a positive number.");
  16. return { records: [], totalPages: 0, totalRecords: 0 };
  17. }
  18. if (typeof pageNumber !== 'number' || pageNumber <= 0) {
  19. console.error("Page number must be a positive number.");
  20. return { records: [], totalPages: 0, totalRecords: 0 };
  21. }
  22. const startIndex = (pageNumber - 1) * pageSize; // Calculate the starting index
  23. const endIndex = startIndex + pageSize; // Calculate the ending index
  24. const paginatedRecords = records.slice(startIndex, endIndex); // Extract the records for the current page
  25. const totalRecords = records.length;
  26. const totalPages = Math.ceil(totalRecords / pageSize); // Calculate the total number of pages
  27. return {
  28. records: paginatedRecords,
  29. totalPages: totalPages,
  30. totalRecords: totalRecords
  31. };
  32. }

Add your comment