summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/users.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-19 14:05:32 +0900
committerGitHub <noreply@github.com>2022-02-19 14:05:32 +0900
commit510de87607283d4d49239b1d14026a577299c99e (patch)
treed56933864d6cf07751e2e2a11a373ee752338c80 /packages/backend/src/server/api/endpoints/users.ts
parentupdate deps (diff)
downloadsharkey-510de87607283d4d49239b1d14026a577299c99e.tar.gz
sharkey-510de87607283d4d49239b1d14026a577299c99e.tar.bz2
sharkey-510de87607283d4d49239b1d14026a577299c99e.zip
refactor: use ajv instead of cafy (#8324)
* wip * wip * Update abuse-user-reports.ts * Update files.ts * Update list-remote.ts * Update list.ts * Update show-users.ts * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * Update update.ts * Update search.ts * Update reactions.ts * Update search.ts * wip * wip * wip * wip * Update update.ts * Update relation.ts * Update available.ts * wip * wip * wip * Update packages/backend/src/server/api/define.ts Co-authored-by: Johann150 <johann.galle@protonmail.com> * Update define.ts * Update define.ts * typo * wip * wip * wip * wip * wip * wip * wip * wip * Update update.ts * wip * Update signup.ts * Update call.ts * minimum for limit * type * remove needless annotation * wip * Update signup.ts * wip * wip * fix * Update create.ts Co-authored-by: Johann150 <johann.galle@protonmail.com>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/users.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/users.ts60
1 files changed, 14 insertions, 46 deletions
diff --git a/packages/backend/src/server/api/endpoints/users.ts b/packages/backend/src/server/api/endpoints/users.ts
index 6b11ec0f01..0c03ac05c3 100644
--- a/packages/backend/src/server/api/endpoints/users.ts
+++ b/packages/backend/src/server/api/endpoints/users.ts
@@ -1,4 +1,3 @@
-import $ from 'cafy';
import define from '../define';
import { Users } from '@/models/index';
import { generateMutedUserQueryForUsers } from '../common/generate-muted-user-query';
@@ -9,49 +8,6 @@ export const meta = {
requireCredential: false,
- 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',
optional: false, nullable: false,
@@ -63,8 +19,20 @@ export const meta = {
},
} as const;
+const paramDef = {
+ type: 'object',
+ properties: {
+ limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },
+ offset: { type: 'integer', default: 0 },
+ sort: { type: 'string', enum: ['+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt'] },
+ state: { type: 'string', enum: ['all', 'admin', 'moderator', 'adminOrModerator', 'alive'], default: "all" },
+ origin: { type: 'string', enum: ['combined', 'local', 'remote'], default: "local" },
+ },
+ required: [],
+} as const;
+
// eslint-disable-next-line import/no-default-export
-export default define(meta, async (ps, me) => {
+export default define(meta, paramDef, async (ps, me) => {
const query = Users.createQueryBuilder('user');
query.where('user.isExplorable = TRUE');
@@ -93,7 +61,7 @@ export default define(meta, async (ps, me) => {
if (me) generateMutedUserQueryForUsers(query, me);
if (me) generateBlockQueryForUsers(query, me);
- query.take(ps.limit!);
+ query.take(ps.limit);
query.skip(ps.offset);
const users = await query.getMany();