Expand ISAC user operations

This commit is contained in:
JB
2026-07-25 02:54:53 -04:00
parent 22b9e4578c
commit 78dc5dcc98
8 changed files with 169 additions and 35 deletions
+5 -3
View File
@@ -2,11 +2,13 @@ import type { URL } from 'node:url';
export const PAGE_SIZE_PRESETS = [10, 25, 50, 100] as const;
export function getPagination(url: URL, total: number) {
const requestedSize = Number(url.searchParams.get('perPage'));
export function getPagination(url: URL, total: number, namespace = '') {
const pageKey = namespace ? `${namespace}Page` : 'page';
const perPageKey = namespace ? `${namespace}PerPage` : 'perPage';
const requestedSize = Number(url.searchParams.get(perPageKey));
const perPage = PAGE_SIZE_PRESETS.includes(requestedSize as (typeof PAGE_SIZE_PRESETS)[number]) ? requestedSize : 25;
const pageCount = Math.max(1, Math.ceil(total / perPage));
const requestedPage = Number(url.searchParams.get('page'));
const requestedPage = Number(url.searchParams.get(pageKey));
const page = Math.min(pageCount, Math.max(1, Number.isInteger(requestedPage) ? requestedPage : 1));
return {
page,