Sharkey/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts

38 lines
836 B
TypeScript
Raw Normal View History

2018-11-03 20:18:32 +02:00
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Emojis } from '@/models/index';
2022-01-12 17:47:05 +02:00
import { getConnection, In } from 'typeorm';
import { insertModerationLog } from '@/services/insert-moderation-log';
import { ApiError } from '../../../error';
2018-11-03 20:18:32 +02:00
export const meta = {
tags: ['admin'],
2020-02-15 14:33:32 +02:00
requireCredential: true as const,
2018-11-14 21:15:42 +02:00
requireModerator: true,
2018-11-03 20:18:32 +02:00
params: {
2022-01-12 17:47:05 +02:00
ids: {
validator: $.arr($.type(ID)),
2021-12-09 16:58:30 +02:00
},
},
2018-11-03 20:18:32 +02:00
};
2022-01-02 19:12:50 +02:00
// eslint-disable-next-line import/no-default-export
2019-07-13 21:18:45 +03:00
export default define(meta, async (ps, me) => {
2022-01-12 17:47:05 +02:00
const emojis = await Emojis.find({
id: In(ps.ids),
2019-07-13 21:18:45 +03:00
});
2022-01-12 17:47:05 +02:00
for (const emoji of emojis) {
await Emojis.delete(emoji.id);
await getConnection().queryResultCache!.remove(['meta_emojis']);
insertModerationLog(me, 'deleteEmoji', {
emoji: emoji,
});
}
});