summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/users.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /src/server/api/endpoints/users.ts
parentupdate deps (diff)
downloadsharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz
sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2
sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip
refactoring
Resolve #7779
Diffstat (limited to 'src/server/api/endpoints/users.ts')
-rw-r--r--src/server/api/endpoints/users.ts101
1 files changed, 0 insertions, 101 deletions
diff --git a/src/server/api/endpoints/users.ts b/src/server/api/endpoints/users.ts
deleted file mode 100644
index 930dcc7616..0000000000
--- a/src/server/api/endpoints/users.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import $ from 'cafy';
-import define from '../define';
-import { Users } from '@/models/index';
-import { generateMutedUserQueryForUsers } from '../common/generate-muted-user-query';
-import { generateBlockQueryForUsers } from '../common/generate-block-query';
-
-export const meta = {
- tags: ['users'],
-
- requireCredential: false as const,
-
- params: {
- limit: {
- validator: $.optional.num.range(1, 100),
- default: 10
- },
-
- offset: {
- validator: $.optional.num.min(0),
- default: 0
- },
-
- sort: {
- validator: $.optional.str.or([
- '+follower',
- '-follower',
- '+createdAt',
- '-createdAt',
- '+updatedAt',
- '-updatedAt',
- ]),
- },
-
- state: {
- validator: $.optional.str.or([
- 'all',
- 'admin',
- 'moderator',
- 'adminOrModerator',
- 'alive'
- ]),
- default: 'all'
- },
-
- origin: {
- validator: $.optional.str.or([
- 'combined',
- 'local',
- 'remote',
- ]),
- default: 'local'
- }
- },
-
- res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
- items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- ref: 'User',
- }
- },
-};
-
-export default define(meta, async (ps, me) => {
- const query = Users.createQueryBuilder('user');
- query.where('user.isExplorable = TRUE');
-
- switch (ps.state) {
- case 'admin': query.andWhere('user.isAdmin = TRUE'); break;
- case 'moderator': query.andWhere('user.isModerator = TRUE'); break;
- case 'adminOrModerator': query.andWhere('user.isAdmin = TRUE OR user.isModerator = TRUE'); break;
- case 'alive': query.andWhere('user.updatedAt > :date', { date: new Date(Date.now() - 1000 * 60 * 60 * 24 * 5) }); break;
- }
-
- switch (ps.origin) {
- case 'local': query.andWhere('user.host IS NULL'); break;
- case 'remote': query.andWhere('user.host IS NOT NULL'); break;
- }
-
- switch (ps.sort) {
- case '+follower': query.orderBy('user.followersCount', 'DESC'); break;
- case '-follower': query.orderBy('user.followersCount', 'ASC'); break;
- case '+createdAt': query.orderBy('user.createdAt', 'DESC'); break;
- case '-createdAt': query.orderBy('user.createdAt', 'ASC'); break;
- case '+updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'DESC'); break;
- case '-updatedAt': query.andWhere('user.updatedAt IS NOT NULL').orderBy('user.updatedAt', 'ASC'); break;
- default: query.orderBy('user.id', 'ASC'); break;
- }
-
- if (me) generateMutedUserQueryForUsers(query, me);
- if (me) generateBlockQueryForUsers(query, me);
-
- query.take(ps.limit!);
- query.skip(ps.offset);
-
- const users = await query.getMany();
-
- return await Users.packMany(users, me, { detail: true });
-});