mirror of
https://github.com/Floriansylvain/ParisMuseesQuizz.git
synced 2026-08-19 11:43:22 +02:00
25 lines
577 B
TypeScript
25 lines
577 B
TypeScript
import { z } from "zod"
|
|
|
|
export interface Pagination {
|
|
skip: number
|
|
take: number
|
|
}
|
|
|
|
export const queryPaginationParser = z.object({
|
|
skip: z.coerce.number().optional().default(0),
|
|
take: z.coerce.number().optional().default(10),
|
|
})
|
|
|
|
export function getPaginationLinks(
|
|
query: Pagination,
|
|
routeName: string
|
|
): object {
|
|
const nextStart = query.skip + query.take
|
|
const prevStart = Math.max(0, query.skip - query.take)
|
|
|
|
return {
|
|
next: `/v1/${routeName}?start=${nextStart}&per_page=${query.take}`,
|
|
prev: `/v1/${routeName}?start=${prevStart}&per_page=${query.take}`,
|
|
}
|
|
}
|