feat(media): pagination

This commit is contained in:
Florian Sylvain committed 2026-10-13 19:54:59 +02:00
1 parent 04dc151ed7
commit 63c1e7076e
65 files changed
+2960 -365

No files matched your search

+28 -11
View File
@@ -95,10 +95,24 @@ const FORMAT_QUERY: ApiField = {
rule: 'markdown, html or json. Default markdown.',
}
const PAGE_QUERY: ApiField = {
name: 'page',
type: 'number',
required: false,
rule: 'A whole number from 1. Default 1.',
}
const SIZE_QUERY: ApiField = {
name: 'size',
type: 'number',
required: false,
rule: '5, 25, 50 or 100. Default 25.',
}
const ARTICLE_LIST_QUERY: ApiField[] = [
FORMAT_QUERY,
{ name: 'page', type: 'number', required: false, rule: 'A whole number from 1. Default 1.' },
{ name: 'size', type: 'number', required: false, rule: '5, 25, 50 or 100. Default 25.' },
PAGE_QUERY,
SIZE_QUERY,
{
name: 'q',
type: 'string',
@@ -122,12 +136,6 @@ const MEDIA_QUERY: ApiField[] = [
required: false,
rule: 'SHA-256 of the content, lowercased.',
},
{
name: 'cursor',
type: 'string',
required: false,
rule: 'The next_cursor of the previous page.',
},
{
name: 'filter',
type: 'string',
@@ -138,9 +146,16 @@ const MEDIA_QUERY: ApiField[] = [
name: 'sort',
type: 'string',
required: false,
rule: 'newest, oldest, name or largest. Default newest.',
rule: 'newest, oldest, name, largest or total_size. Default newest.',
},
{ name: 'limit', type: 'number', required: false, rule: '1 to 100. Default 24.' },
{
name: 'variants',
type: 'string',
required: false,
rule: 'with or without. Default both.',
},
PAGE_QUERY,
SIZE_QUERY,
]
const json = (value: unknown) => JSON.stringify(value, null, 2)
@@ -423,7 +438,9 @@ export const API_GROUPS: ApiGroup[] = [
verified([e(400, 'The media query is invalid.'), e(401, UNAUTHORIZED)]),
json({
items: [mediaItem()],
next_cursor: null,
total: 1,
page: 1,
size: 25,
counts: { all: 1, unused: 0, duplicates: 0 },
}),
{ query: MEDIA_QUERY },