summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/users
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints/users')
-rw-r--r--packages/backend/src/server/api/endpoints/users/clips.ts3
-rw-r--r--packages/backend/src/server/api/endpoints/users/followers.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/following.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/gallery/posts.ts3
-rw-r--r--packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts25
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/create.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/delete.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/invite.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/joined.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/leave.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/owned.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/pull.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/show.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/transfer.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/groups/update.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/create.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/delete.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/list.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/pull.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/push.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/show.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/update.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/notes.ts11
-rw-r--r--packages/backend/src/server/api/endpoints/users/pages.ts3
-rw-r--r--packages/backend/src/server/api/endpoints/users/reactions.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/recommendation.ts15
-rw-r--r--packages/backend/src/server/api/endpoints/users/relation.ts80
-rw-r--r--packages/backend/src/server/api/endpoints/users/report-abuse.ts8
-rw-r--r--packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts15
-rw-r--r--packages/backend/src/server/api/endpoints/users/search.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/users/show.ts24
-rw-r--r--packages/backend/src/server/api/endpoints/users/stats.ts13
34 files changed, 223 insertions, 176 deletions
diff --git a/packages/backend/src/server/api/endpoints/users/clips.ts b/packages/backend/src/server/api/endpoints/users/clips.ts
index f5964c54db..d4152fbf50 100644
--- a/packages/backend/src/server/api/endpoints/users/clips.ts
+++ b/packages/backend/src/server/api/endpoints/users/clips.ts
@@ -25,8 +25,9 @@ export const meta = {
validator: $.optional.type(ID),
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const query = makePaginationQuery(Clips.createQueryBuilder('clip'), ps.sinceId, ps.untilId)
.andWhere(`clip.userId = :userId`, { userId: ps.userId })
diff --git a/packages/backend/src/server/api/endpoints/users/followers.ts b/packages/backend/src/server/api/endpoints/users/followers.ts
index 535b10412e..6214ab40ba 100644
--- a/packages/backend/src/server/api/endpoints/users/followers.ts
+++ b/packages/backend/src/server/api/endpoints/users/followers.ts
@@ -9,7 +9,7 @@ import { toPunyNullable } from '@/misc/convert-host';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
userId: {
@@ -39,11 +39,11 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'Following',
},
},
@@ -61,8 +61,9 @@ export const meta = {
id: '3c6a84db-d619-26af-ca14-06232a21df8a',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const user = await Users.findOne(ps.userId != null
? { id: ps.userId }
diff --git a/packages/backend/src/server/api/endpoints/users/following.ts b/packages/backend/src/server/api/endpoints/users/following.ts
index 58c72bb957..76112eab25 100644
--- a/packages/backend/src/server/api/endpoints/users/following.ts
+++ b/packages/backend/src/server/api/endpoints/users/following.ts
@@ -9,7 +9,7 @@ import { toPunyNullable } from '@/misc/convert-host';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
userId: {
@@ -39,11 +39,11 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'Following',
},
},
@@ -61,8 +61,9 @@ export const meta = {
id: 'f6cdb0df-c19f-ec5c-7dbb-0ba84a1f92ba',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const user = await Users.findOne(ps.userId != null
? { id: ps.userId }
diff --git a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts
index 6ef884deda..c5f08b4c94 100644
--- a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts
+++ b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts
@@ -25,8 +25,9 @@ export const meta = {
validator: $.optional.type(ID),
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const query = makePaginationQuery(GalleryPosts.createQueryBuilder('post'), ps.sinceId, ps.untilId)
.andWhere(`post.userId = :userId`, { userId: ps.userId });
diff --git a/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts b/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts
index a88de7ac83..d886d3355a 100644
--- a/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts
+++ b/packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts
@@ -10,7 +10,7 @@ import { Notes, Users } from '@/models/index';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
userId: {
@@ -24,12 +24,22 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- ref: 'User',
+ type: 'object',
+ optional: false, nullable: false,
+ properties: {
+ user: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'UserDetailed',
+ },
+ weight: {
+ type: 'number',
+ optional: false, nullable: false,
+ },
+ },
},
},
@@ -40,8 +50,9 @@ export const meta = {
id: 'e6965129-7b2a-40a4-bae2-cd84cd434822',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Lookup user
const user = await getUser(ps.userId).catch(e => {
diff --git a/packages/backend/src/server/api/endpoints/users/groups/create.ts b/packages/backend/src/server/api/endpoints/users/groups/create.ts
index 12ee11ba55..25e29de01c 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/create.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/create.ts
@@ -8,7 +8,7 @@ import { UserGroupJoining } from '@/models/entities/user-group-joining';
export const meta = {
tags: ['groups'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -19,12 +19,13 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserGroup',
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const userGroup = await UserGroups.insert({
id: genId(),
diff --git a/packages/backend/src/server/api/endpoints/users/groups/delete.ts b/packages/backend/src/server/api/endpoints/users/groups/delete.ts
index dbc77dd8fe..f30ab78ca0 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/delete.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/delete.ts
@@ -7,7 +7,7 @@ import { UserGroups } from '@/models/index';
export const meta = {
tags: ['groups'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -24,8 +24,9 @@ export const meta = {
id: '63dbd64c-cd77-413f-8e08-61781e210b38',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const userGroup = await UserGroups.findOne({
id: ps.groupId,
diff --git a/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts
index fef94c306f..7061db538b 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/invitations/accept.ts
@@ -9,7 +9,7 @@ import { UserGroupJoining } from '@/models/entities/user-group-joining';
export const meta = {
tags: ['groups', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -26,8 +26,9 @@ export const meta = {
id: '98c11eca-c890-4f42-9806-c8c8303ebb5e',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Fetch the invitation
const invitation = await UserGroupInvitations.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts b/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts
index 33a202f029..f5ca3dec8b 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/invitations/reject.ts
@@ -7,7 +7,7 @@ import { UserGroupInvitations } from '@/models/index';
export const meta = {
tags: ['groups', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -24,8 +24,9 @@ export const meta = {
id: 'ad7471d4-2cd9-44b4-ac68-e7136b4ce656',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Fetch the invitation
const invitation = await UserGroupInvitations.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/invite.ts b/packages/backend/src/server/api/endpoints/users/groups/invite.ts
index 4dee18fcb0..3b7a4edb81 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/invite.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/invite.ts
@@ -11,7 +11,7 @@ import { createNotification } from '@/services/create-notification';
export const meta = {
tags: ['groups', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -50,8 +50,9 @@ export const meta = {
id: 'ee0f58b4-b529-4d13-b761-b9a3e69f97e6',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the group
const userGroup = await UserGroups.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/joined.ts b/packages/backend/src/server/api/endpoints/users/groups/joined.ts
index 1bd065ca00..ab48b1910d 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/joined.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/joined.ts
@@ -5,21 +5,22 @@ import { Not, In } from 'typeorm';
export const meta = {
tags: ['groups', 'account'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:user-groups',
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserGroup',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const ownedGroups = await UserGroups.find({
userId: me.id,
diff --git a/packages/backend/src/server/api/endpoints/users/groups/leave.ts b/packages/backend/src/server/api/endpoints/users/groups/leave.ts
index 9a41175d63..d2fcdab301 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/leave.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/leave.ts
@@ -7,7 +7,7 @@ import { UserGroups, UserGroupJoinings } from '@/models/index';
export const meta = {
tags: ['groups', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -30,8 +30,9 @@ export const meta = {
id: 'b6d6e0c2-ef8a-9bb8-653d-79f4a3107c69',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the group
const userGroup = await UserGroups.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/owned.ts b/packages/backend/src/server/api/endpoints/users/groups/owned.ts
index 69e4c85717..6193a71019 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/owned.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/owned.ts
@@ -4,21 +4,22 @@ import { UserGroups } from '@/models/index';
export const meta = {
tags: ['groups', 'account'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:user-groups',
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserGroup',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const userGroups = await UserGroups.find({
userId: me.id,
diff --git a/packages/backend/src/server/api/endpoints/users/groups/pull.ts b/packages/backend/src/server/api/endpoints/users/groups/pull.ts
index 70c1457dcd..785bea140d 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/pull.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/pull.ts
@@ -8,7 +8,7 @@ import { UserGroups, UserGroupJoinings } from '@/models/index';
export const meta = {
tags: ['groups', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -41,8 +41,9 @@ export const meta = {
id: '1546eed5-4414-4dea-81c1-b0aec4f6d2af',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the group
const userGroup = await UserGroups.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/show.ts b/packages/backend/src/server/api/endpoints/users/groups/show.ts
index 0bb06f8df4..eb26eac2a8 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/show.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/show.ts
@@ -7,7 +7,7 @@ import { UserGroups, UserGroupJoinings } from '@/models/index';
export const meta = {
tags: ['groups', 'account'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:user-groups',
@@ -18,8 +18,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserGroup',
},
@@ -30,8 +30,9 @@ export const meta = {
id: 'ea04751e-9b7e-487b-a509-330fb6bd6b9b',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the group
const userGroup = await UserGroups.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/transfer.ts b/packages/backend/src/server/api/endpoints/users/groups/transfer.ts
index 54cf8197e7..4b1c8fbbdb 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/transfer.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/transfer.ts
@@ -8,7 +8,7 @@ import { UserGroups, UserGroupJoinings } from '@/models/index';
export const meta = {
tags: ['groups', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -23,8 +23,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserGroup',
},
@@ -47,8 +47,9 @@ export const meta = {
id: 'd31bebee-196d-42c2-9a3e-9474d4be6cc4',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the group
const userGroup = await UserGroups.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/groups/update.ts b/packages/backend/src/server/api/endpoints/users/groups/update.ts
index d16f1ac42b..6caf903555 100644
--- a/packages/backend/src/server/api/endpoints/users/groups/update.ts
+++ b/packages/backend/src/server/api/endpoints/users/groups/update.ts
@@ -7,7 +7,7 @@ import { UserGroups } from '@/models/index';
export const meta = {
tags: ['groups'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:user-groups',
@@ -22,8 +22,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserGroup',
},
@@ -34,8 +34,9 @@ export const meta = {
id: '9081cda3-7a9e-4fac-a6ce-908d70f282f6',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the group
const userGroup = await UserGroups.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/lists/create.ts b/packages/backend/src/server/api/endpoints/users/lists/create.ts
index 8372139f84..945b511628 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/create.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/create.ts
@@ -7,7 +7,7 @@ import { UserList } from '@/models/entities/user-list';
export const meta = {
tags: ['lists'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:account',
@@ -18,12 +18,13 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserList',
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const userList = await UserLists.insert({
id: genId(),
diff --git a/packages/backend/src/server/api/endpoints/users/lists/delete.ts b/packages/backend/src/server/api/endpoints/users/lists/delete.ts
index fac4e90dbf..3183d2a09c 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/delete.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/delete.ts
@@ -7,7 +7,7 @@ import { UserLists } from '@/models/index';
export const meta = {
tags: ['lists'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:account',
@@ -24,8 +24,9 @@ export const meta = {
id: '78436795-db79-42f5-b1e2-55ea2cf19166',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const userList = await UserLists.findOne({
id: ps.listId,
diff --git a/packages/backend/src/server/api/endpoints/users/lists/list.ts b/packages/backend/src/server/api/endpoints/users/lists/list.ts
index 222c930d0e..ae66b0aacc 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/list.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/list.ts
@@ -4,21 +4,22 @@ import { UserLists } from '@/models/index';
export const meta = {
tags: ['lists', 'account'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:account',
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserList',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const userLists = await UserLists.find({
userId: me.id,
diff --git a/packages/backend/src/server/api/endpoints/users/lists/pull.ts b/packages/backend/src/server/api/endpoints/users/lists/pull.ts
index 86daa9b2e1..4c74aefa8a 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/pull.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/pull.ts
@@ -9,7 +9,7 @@ import { UserLists, UserListJoinings, Users } from '@/models/index';
export const meta = {
tags: ['lists', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:account',
@@ -36,8 +36,9 @@ export const meta = {
id: '588e7f72-c744-4a61-b180-d354e912bda2',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the list
const userList = await UserLists.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/lists/push.ts b/packages/backend/src/server/api/endpoints/users/lists/push.ts
index 77ecb4a223..8b50c475b0 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/push.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/push.ts
@@ -9,7 +9,7 @@ import { UserLists, UserListJoinings, Blockings } from '@/models/index';
export const meta = {
tags: ['lists', 'users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:account',
@@ -48,8 +48,9 @@ export const meta = {
id: '990232c5-3f9d-4d83-9f3f-ef27b6332a4b',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the list
const userList = await UserLists.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/lists/show.ts b/packages/backend/src/server/api/endpoints/users/lists/show.ts
index 9c985bb091..06555c1a88 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/show.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/show.ts
@@ -7,7 +7,7 @@ import { UserLists } from '@/models/index';
export const meta = {
tags: ['lists', 'account'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:account',
@@ -18,8 +18,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserList',
},
@@ -30,8 +30,9 @@ export const meta = {
id: '7bc05c21-1d7a-41ae-88f1-66820f4dc686',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Fetch the list
const userList = await UserLists.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/lists/update.ts b/packages/backend/src/server/api/endpoints/users/lists/update.ts
index 8a0f96a5d9..02b0d5fe18 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/update.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/update.ts
@@ -7,7 +7,7 @@ import { UserLists } from '@/models/index';
export const meta = {
tags: ['lists'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'write:account',
@@ -22,8 +22,8 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'UserList',
},
@@ -34,8 +34,9 @@ export const meta = {
id: '796666fe-3dff-4d39-becb-8a5932c1d5b7',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
// Fetch the list
const userList = await UserLists.findOne({
diff --git a/packages/backend/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts
index da8e858119..99158fb0ae 100644
--- a/packages/backend/src/server/api/endpoints/users/notes.ts
+++ b/packages/backend/src/server/api/endpoints/users/notes.ts
@@ -66,11 +66,11 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'Note',
},
},
@@ -82,8 +82,9 @@ export const meta = {
id: '27e494ba-2ac2-48e8-893b-10d4d8c2387b',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
// Lookup user
const user = await getUser(ps.userId).catch(e => {
diff --git a/packages/backend/src/server/api/endpoints/users/pages.ts b/packages/backend/src/server/api/endpoints/users/pages.ts
index 4763303a70..6e003dd1af 100644
--- a/packages/backend/src/server/api/endpoints/users/pages.ts
+++ b/packages/backend/src/server/api/endpoints/users/pages.ts
@@ -25,8 +25,9 @@ export const meta = {
validator: $.optional.type(ID),
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const query = makePaginationQuery(Pages.createQueryBuilder('page'), ps.sinceId, ps.untilId)
.andWhere(`page.userId = :userId`, { userId: ps.userId })
diff --git a/packages/backend/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts
index 626487176b..312d4dbf23 100644
--- a/packages/backend/src/server/api/endpoints/users/reactions.ts
+++ b/packages/backend/src/server/api/endpoints/users/reactions.ts
@@ -9,7 +9,7 @@ import { ApiError } from '../../error';
export const meta = {
tags: ['users', 'reactions'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
userId: {
@@ -39,11 +39,11 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'NoteReaction',
},
},
@@ -55,8 +55,9 @@ export const meta = {
id: '673a7dd2-6924-1093-e0c0-e68456ceae5c',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const profile = await UserProfiles.findOneOrFail(ps.userId);
diff --git a/packages/backend/src/server/api/endpoints/users/recommendation.ts b/packages/backend/src/server/api/endpoints/users/recommendation.ts
index 71c564c980..9ea39eb2dd 100644
--- a/packages/backend/src/server/api/endpoints/users/recommendation.ts
+++ b/packages/backend/src/server/api/endpoints/users/recommendation.ts
@@ -8,7 +8,7 @@ import { generateBlockedUserQuery, generateBlockQueryForUsers } from '../../comm
export const meta = {
tags: ['users'],
- requireCredential: true as const,
+ requireCredential: true,
kind: 'read:account',
@@ -25,16 +25,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- ref: 'User',
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'UserDetailed',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const query = Users.createQueryBuilder('user')
.where('user.isLocked = FALSE')
diff --git a/packages/backend/src/server/api/endpoints/users/relation.ts b/packages/backend/src/server/api/endpoints/users/relation.ts
index af1984fa2b..7e319ca105 100644
--- a/packages/backend/src/server/api/endpoints/users/relation.ts
+++ b/packages/backend/src/server/api/endpoints/users/relation.ts
@@ -6,7 +6,7 @@ import { Users } from '@/models/index';
export const meta = {
tags: ['users'],
- requireCredential: true as const,
+ requireCredential: true,
params: {
userId: {
@@ -15,93 +15,93 @@ export const meta = {
},
res: {
+ optional: false, nullable: false,
oneOf: [
{
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
properties: {
id: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
+ type: 'string',
+ optional: false, nullable: false,
format: 'id',
},
isFollowing: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
hasPendingFollowRequestFromYou: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
hasPendingFollowRequestToYou: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isFollowed: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isBlocking: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isBlocked: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isMuted: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
},
},
{
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
properties: {
id: {
- type: 'string' as const,
- optional: false as const, nullable: false as const,
+ type: 'string',
+ optional: false, nullable: false,
format: 'id',
},
isFollowing: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
hasPendingFollowRequestFromYou: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
hasPendingFollowRequestToYou: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isFollowed: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isBlocking: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isBlocked: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
isMuted: {
- type: 'boolean' as const,
- optional: false as const, nullable: false as const,
+ type: 'boolean',
+ optional: false, nullable: false,
},
},
},
},
],
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const ids = Array.isArray(ps.userId) ? ps.userId : [ps.userId];
diff --git a/packages/backend/src/server/api/endpoints/users/report-abuse.ts b/packages/backend/src/server/api/endpoints/users/report-abuse.ts
index a1d8376651..ed2aa7bb26 100644
--- a/packages/backend/src/server/api/endpoints/users/report-abuse.ts
+++ b/packages/backend/src/server/api/endpoints/users/report-abuse.ts
@@ -13,7 +13,7 @@ import { fetchMeta } from '@/misc/fetch-meta';
export const meta = {
tags: ['users'],
- requireCredential: true as const,
+ requireCredential: true,
params: {
userId: {
@@ -44,7 +44,7 @@ export const meta = {
id: '35e166f5-05fb-4f87-a2d5-adb42676d48f',
},
},
-};
+} as const;
// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
@@ -62,7 +62,7 @@ export default define(meta, async (ps, me) => {
throw new ApiError(meta.errors.cannotReportAdmin);
}
- const report = await AbuseUserReports.save({
+ const report = await AbuseUserReports.insert({
id: genId(),
createdAt: new Date(),
targetUserId: user.id,
@@ -70,7 +70,7 @@ export default define(meta, async (ps, me) => {
reporterId: me.id,
reporterHost: null,
comment: ps.comment,
- });
+ }).then(x => AbuseUserReports.findOneOrFail(x.identifiers[0]));
// Publish event to moderators
setTimeout(async () => {
diff --git a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
index 58a8d929f7..d67625e624 100644
--- a/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
+++ b/packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts
@@ -8,7 +8,7 @@ import { User } from '@/models/entities/user';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
username: {
@@ -31,16 +31,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'User',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const activeThreshold = new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)); // 30日
@@ -111,6 +112,6 @@ export default define(meta, async (ps, me) => {
.getMany();
}
- return await Users.packMany(users, me, { detail: ps.detail });
+ return await Users.packMany(users, me, { detail: !!ps.detail });
}
});
diff --git a/packages/backend/src/server/api/endpoints/users/search.ts b/packages/backend/src/server/api/endpoints/users/search.ts
index f87088688c..26f818afcc 100644
--- a/packages/backend/src/server/api/endpoints/users/search.ts
+++ b/packages/backend/src/server/api/endpoints/users/search.ts
@@ -7,7 +7,7 @@ import { Brackets } from 'typeorm';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
query: {
@@ -36,16 +36,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'User',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const activeThreshold = new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)); // 30日
diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts
index eacb2aee16..92910e9ed8 100644
--- a/packages/backend/src/server/api/endpoints/users/show.ts
+++ b/packages/backend/src/server/api/endpoints/users/show.ts
@@ -11,7 +11,7 @@ import { User } from '@/models/entities/user';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
userId: {
@@ -32,9 +32,20 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- ref: 'User',
+ optional: false, nullable: false,
+ oneOf: [
+ {
+ type: 'object',
+ ref: 'UserDetailed',
+ },
+ {
+ type: 'array',
+ items: {
+ type: 'object',
+ ref: 'UserDetailed',
+ }
+ },
+ ]
},
errors: {
@@ -42,7 +53,7 @@ export const meta = {
message: 'Failed to resolve remote user.',
code: 'FAILED_TO_RESOLVE_REMOTE_USER',
id: 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c',
- kind: 'server' as const,
+ kind: 'server',
},
noSuchUser: {
@@ -51,8 +62,9 @@ export const meta = {
id: '4362f8dc-731f-4ad8-a694-be5a88922a24',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
let user;
diff --git a/packages/backend/src/server/api/endpoints/users/stats.ts b/packages/backend/src/server/api/endpoints/users/stats.ts
index b8564218ac..381e433479 100644
--- a/packages/backend/src/server/api/endpoints/users/stats.ts
+++ b/packages/backend/src/server/api/endpoints/users/stats.ts
@@ -2,12 +2,12 @@ import $ from 'cafy';
import define from '../../define';
import { ApiError } from '../../error';
import { ID } from '@/misc/cafy-id';
-import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, ReversiGames, Users } from '@/models/index';
+import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, Users } from '@/models/index';
export const meta = {
tags: ['users'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
userId: {
@@ -22,8 +22,9 @@ export const meta = {
id: '9e638e45-3b25-4ef7-8f95-07e8498f1819',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const user = await Users.findOne(ps.userId);
if (user == null) {
@@ -49,7 +50,6 @@ export default define(meta, async (ps, me) => {
pageLikedCount,
driveFilesCount,
driveUsage,
- reversiCount,
] = await Promise.all([
Notes.createQueryBuilder('note')
.where('note.userId = :userId', { userId: user.id })
@@ -112,10 +112,6 @@ export default define(meta, async (ps, me) => {
.where('file.userId = :userId', { userId: user.id })
.getCount(),
DriveFiles.calcDriveUsageOf(user),
- ReversiGames.createQueryBuilder('game')
- .where('game.user1Id = :userId', { userId: user.id })
- .orWhere('game.user2Id = :userId', { userId: user.id })
- .getCount(),
]);
return {
@@ -139,6 +135,5 @@ export default define(meta, async (ps, me) => {
pageLikedCount,
driveFilesCount,
driveUsage,
- reversiCount,
};
});