diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-04-07 17:49:53 +0100 |
|---|---|---|
| committer | dakkar <dakkar@thenautilus.net> | 2024-05-09 21:02:34 +0100 |
| commit | 9d91196344ce359fd27dabd778d4d084d1fc6c5e (patch) | |
| tree | 7c20f27fd39b60694248a0234df48c42f2b30857 /packages/backend/src/server/api | |
| parent | allow computed `offsetMode` in `MkPagination` - #490 (diff) | |
| download | sharkey-9d91196344ce359fd27dabd778d4d084d1fc6c5e.tar.gz sharkey-9d91196344ce359fd27dabd778d4d084d1fc6c5e.tar.bz2 sharkey-9d91196344ce359fd27dabd778d4d084d1fc6c5e.zip | |
allow `offset` in `admin/emoji/list` - #490
also, use `skip` + `take` instead of `limit` (the TypeORM docs say so
https://github.com/typeorm/typeorm/blob/master/docs/select-query-builder.md#adding-limit-expression )
Diffstat (limited to 'packages/backend/src/server/api')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/emoji/list.ts | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts index 5e21111f9f..f35a6667f4 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/list.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/list.ts @@ -66,6 +66,7 @@ export const paramDef = { properties: { query: { type: 'string', nullable: true, default: null }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, + offset: { type: 'integer', minimum: 1, nullable: true, default: null }, sinceId: { type: 'string', format: 'misskey:id' }, untilId: { type: 'string', format: 'misskey:id' }, }, @@ -91,7 +92,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- //q.andWhere('emoji.name ILIKE :q', { q: `%${ sqlLikeEscape(ps.query) }%` }); //const emojis = await q.limit(ps.limit).getMany(); - emojis = await q.orderBy('length(emoji.name)', 'ASC').getMany(); + emojis = await q.orderBy('length(emoji.name)', 'ASC').addOrderBy('id', 'DESC').getMany(); const queryarry = ps.query.match(/:([\p{Letter}\p{Number}\p{Mark}_+-]*):/ug); if (queryarry) { @@ -105,9 +106,9 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- emoji.aliases.some(a => a.includes(queryNfc)) || emoji.category?.includes(queryNfc)); } - emojis.splice(ps.limit + 1); + emojis = emojis.slice((ps.offset ?? 0), ((ps.offset ?? 0) + ps.limit)); } else { - emojis = await q.limit(ps.limit).getMany(); + emojis = await q.take(ps.limit).skip(ps.offset ?? 0).getMany(); } return this.emojiEntityService.packDetailedMany(emojis); |