diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-01-30 04:37:25 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-30 04:37:25 +0900 |
| commit | f6154dc0af1a0d65819e87240f4385f9573095cb (patch) | |
| tree | 699a5ca07d6727b7f8497d4769f25d6d62f94b5a /src/server/api/endpoints/admin/emoji | |
| parent | Add Event activity-type support (#5785) (diff) | |
| download | misskey-f6154dc0af1a0d65819e87240f4385f9573095cb.tar.gz misskey-f6154dc0af1a0d65819e87240f4385f9573095cb.tar.bz2 misskey-f6154dc0af1a0d65819e87240f4385f9573095cb.zip | |
v12 (#5712)
Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>
Co-authored-by: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com>
Diffstat (limited to 'src/server/api/endpoints/admin/emoji')
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/list-remote.ts | 62 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/list.ts | 32 |
2 files changed, 81 insertions, 13 deletions
diff --git a/src/server/api/endpoints/admin/emoji/list-remote.ts b/src/server/api/endpoints/admin/emoji/list-remote.ts new file mode 100644 index 0000000000..0a3e74c333 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -0,0 +1,62 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { Emojis } from '../../../../../models'; +import { toPuny } from '../../../../../misc/convert-host'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; +import { ID } from '../../../../../misc/cafy-id'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を取得します。' + }, + + tags: ['admin'], + + requireCredential: true, + requireModerator: true, + + params: { + host: { + validator: $.optional.nullable.str, + default: null as any + }, + + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), + } + } +}; + +export default define(meta, async (ps) => { + const q = makePaginationQuery(Emojis.createQueryBuilder('emoji'), ps.sinceId, ps.untilId); + + if (ps.host == null) { + q.andWhere(`emoji.host IS NOT NULL`); + } else { + q.andWhere(`emoji.host = :host`, { host: toPuny(ps.host) }); + } + + const emojis = await q + .orderBy('emoji.category', 'ASC') + .orderBy('emoji.name', 'ASC') + .take(ps.limit!) + .getMany(); + + return emojis.map(e => ({ + id: e.id, + name: e.name, + category: e.category, + aliases: e.aliases, + host: e.host, + url: e.url + })); +}); diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/src/server/api/endpoints/admin/emoji/list.ts index d2a5e7df0d..d525a659c0 100644 --- a/src/server/api/endpoints/admin/emoji/list.ts +++ b/src/server/api/endpoints/admin/emoji/list.ts @@ -1,7 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; -import { toPunyNullable } from '../../../../../misc/convert-host'; +import { makePaginationQuery } from '../../../common/make-pagination-query'; +import { ID } from '../../../../../misc/cafy-id'; export const meta = { desc: { @@ -14,23 +15,28 @@ export const meta = { requireModerator: true, params: { - host: { - validator: $.optional.nullable.str, - default: null as any + limit: { + validator: $.optional.num.range(1, 100), + default: 10 + }, + + sinceId: { + validator: $.optional.type(ID), + }, + + untilId: { + validator: $.optional.type(ID), } } }; export default define(meta, async (ps) => { - const emojis = await Emojis.find({ - where: { - host: toPunyNullable(ps.host) - }, - order: { - category: 'ASC', - name: 'ASC' - } - }); + const emojis = await makePaginationQuery(Emojis.createQueryBuilder('emoji'), ps.sinceId, ps.untilId) + .andWhere(`emoji.host IS NULL`) + .orderBy('emoji.category', 'ASC') + .orderBy('emoji.name', 'ASC') + .take(ps.limit!) + .getMany(); return emojis.map(e => ({ id: e.id, |