summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorMarie <marie@kaifa.ch>2024-05-31 18:39:01 +0000
committerMarie <marie@kaifa.ch>2024-05-31 18:39:01 +0000
commit886948769e80c98670c37daa1c1c49c4a207cff1 (patch)
tree3afb782b2a86956e1a833a181daecd53eb6510e2 /packages/backend/src/server/api
parentmerge: escape \ character in sqlLikeEscape (!529) (diff)
parentpaginate in offset mode when querying emoji - fixes #490 (diff)
downloadsharkey-886948769e80c98670c37daa1c1c49c4a207cff1.tar.gz
sharkey-886948769e80c98670c37daa1c1c49c4a207cff1.tar.bz2
sharkey-886948769e80c98670c37daa1c1c49c4a207cff1.zip
merge: fix custom emoji pagination when searching - fixes #490 (!489)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/489 Closes #490 Approved-by: fEmber <acomputerdog@gmail.com> Approved-by: Marie <marie@kaifa.ch>
Diffstat (limited to 'packages/backend/src/server/api')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/list.ts7
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);