From ef0ea3d3219252f23d4eb450c712e67d2be46239 Mon Sep 17 00:00:00 2001 From: wheval Date: Fri, 27 Mar 2026 19:26:44 +0100 Subject: [PATCH] feat: implement default query helpers --- src/modules/creator/creator.controller.ts | 7 +++---- src/modules/creators/creators.schemas.ts | 7 +++---- src/utils/public-list-query-defaults.ts | 23 +++++++++++++++++++++++ 3 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 src/utils/public-list-query-defaults.ts diff --git a/src/modules/creator/creator.controller.ts b/src/modules/creator/creator.controller.ts index 2f5d4f5..2ad7d3d 100644 --- a/src/modules/creator/creator.controller.ts +++ b/src/modules/creator/creator.controller.ts @@ -12,21 +12,20 @@ import { parseCreatorSortOptions } from './creator.utils'; import { safeIntParam } from '../../utils/query.utils'; import { parsePublicQuery } from '../../utils/public-query-parse.utils'; import { - DEFAULT_PAGE, - DEFAULT_PAGE_SIZE, MIN_PAGE_SIZE, MAX_PAGE_SIZE, } from '../../constants/pagination.constants'; +import { PUBLIC_PAGE_PAGINATION_DEFAULTS } from '../../utils/public-list-query-defaults'; const LegacyCreatorQuerySchema = z.object({ page: safeIntParam({ - defaultValue: DEFAULT_PAGE, + defaultValue: PUBLIC_PAGE_PAGINATION_DEFAULTS.page, min: MIN_PAGE_SIZE, max: Number.MAX_SAFE_INTEGER, label: 'Page', }), limit: safeIntParam({ - defaultValue: DEFAULT_PAGE_SIZE, + defaultValue: PUBLIC_PAGE_PAGINATION_DEFAULTS.limit, min: MIN_PAGE_SIZE, max: MAX_PAGE_SIZE, label: 'Limit', diff --git a/src/modules/creators/creators.schemas.ts b/src/modules/creators/creators.schemas.ts index a9624c2..01537b8 100644 --- a/src/modules/creators/creators.schemas.ts +++ b/src/modules/creators/creators.schemas.ts @@ -5,11 +5,10 @@ import { } from './creators.sort'; import { safeIntParam } from '../../utils/query.utils'; import { - DEFAULT_PAGE_SIZE, - DEFAULT_OFFSET, MIN_PAGE_SIZE, MAX_PAGE_SIZE, } from '../../constants/pagination.constants'; +import { PUBLIC_OFFSET_PAGINATION_DEFAULTS } from '../../utils/public-list-query-defaults'; /** * Validation schema for creator list query parameters. @@ -23,13 +22,13 @@ import { export const CreatorListQuerySchema = z.object({ // Pagination limit: safeIntParam({ - defaultValue: DEFAULT_PAGE_SIZE, + defaultValue: PUBLIC_OFFSET_PAGINATION_DEFAULTS.limit, min: MIN_PAGE_SIZE, max: MAX_PAGE_SIZE, label: 'Limit', }), offset: safeIntParam({ - defaultValue: DEFAULT_OFFSET, + defaultValue: PUBLIC_OFFSET_PAGINATION_DEFAULTS.offset, min: 0, max: Number.MAX_SAFE_INTEGER, label: 'Offset', diff --git a/src/utils/public-list-query-defaults.ts b/src/utils/public-list-query-defaults.ts new file mode 100644 index 0000000..17786f2 --- /dev/null +++ b/src/utils/public-list-query-defaults.ts @@ -0,0 +1,23 @@ +import { + DEFAULT_OFFSET, + DEFAULT_PAGE, + DEFAULT_PAGE_SIZE, +} from '../constants/pagination.constants'; + +/** + * Shared default query values for offset-based public list endpoints. + * Keeps defaults centralized without introducing validation behavior. + */ +export const PUBLIC_OFFSET_PAGINATION_DEFAULTS = { + limit: DEFAULT_PAGE_SIZE, + offset: DEFAULT_OFFSET, +} as const; + +/** + * Shared default query values for page-based public list endpoints. + * Keeps defaults centralized without introducing validation behavior. + */ +export const PUBLIC_PAGE_PAGINATION_DEFAULTS = { + page: DEFAULT_PAGE, + limit: DEFAULT_PAGE_SIZE, +} as const;