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.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/followers.ts12
-rw-r--r--packages/backend/src/server/api/endpoints/users/following.ts12
-rw-r--r--packages/backend/src/server/api/endpoints/users/gallery/posts.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/get-frequently-replied-users.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts32
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/favorite.ts20
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/push.ts18
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/show.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/users/notes.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/pages.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/reactions.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/recommendation.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/users/report-abuse.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/users/search-by-username-and-host.ts6
-rw-r--r--packages/backend/src/server/api/endpoints/users/search.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/users/show.ts1
18 files changed, 86 insertions, 62 deletions
diff --git a/packages/backend/src/server/api/endpoints/users/clips.ts b/packages/backend/src/server/api/endpoints/users/clips.ts
index c5aa93baaf..c2ad420cb5 100644
--- a/packages/backend/src/server/api/endpoints/users/clips.ts
+++ b/packages/backend/src/server/api/endpoints/users/clips.ts
@@ -48,7 +48,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
.andWhere('clip.isPublic = true');
const clips = await query
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
return await this.clipEntityService.packMany(clips, me);
diff --git a/packages/backend/src/server/api/endpoints/users/followers.ts b/packages/backend/src/server/api/endpoints/users/followers.ts
index 97f1310c36..18d66500ab 100644
--- a/packages/backend/src/server/api/endpoints/users/followers.ts
+++ b/packages/backend/src/server/api/endpoints/users/followers.ts
@@ -97,11 +97,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
if (me == null) {
throw new ApiError(meta.errors.forbidden);
} else if (me.id !== user.id) {
- const following = await this.followingsRepository.findOneBy({
- followeeId: user.id,
- followerId: me.id,
+ const isFollowing = await this.followingsRepository.exist({
+ where: {
+ followeeId: user.id,
+ followerId: me.id,
+ },
});
- if (following == null) {
+ if (!isFollowing) {
throw new ApiError(meta.errors.forbidden);
}
}
@@ -112,7 +114,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
.innerJoinAndSelect('following.follower', 'follower');
const followings = await query
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
return await this.followingEntityService.packMany(followings, me, { populateFollower: true });
diff --git a/packages/backend/src/server/api/endpoints/users/following.ts b/packages/backend/src/server/api/endpoints/users/following.ts
index d406594a2e..6ea7b923d6 100644
--- a/packages/backend/src/server/api/endpoints/users/following.ts
+++ b/packages/backend/src/server/api/endpoints/users/following.ts
@@ -97,11 +97,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
if (me == null) {
throw new ApiError(meta.errors.forbidden);
} else if (me.id !== user.id) {
- const following = await this.followingsRepository.findOneBy({
- followeeId: user.id,
- followerId: me.id,
+ const isFollowing = await this.followingsRepository.exist({
+ where: {
+ followeeId: user.id,
+ followerId: me.id,
+ },
});
- if (following == null) {
+ if (!isFollowing) {
throw new ApiError(meta.errors.forbidden);
}
}
@@ -112,7 +114,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
.innerJoinAndSelect('following.followee', 'followee');
const followings = await query
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
return await this.followingEntityService.packMany(followings, me, { populateFollowee: true });
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 6e57eee5fb..3ee01953d4 100644
--- a/packages/backend/src/server/api/endpoints/users/gallery/posts.ts
+++ b/packages/backend/src/server/api/endpoints/users/gallery/posts.ts
@@ -47,7 +47,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
.andWhere('post.userId = :userId', { userId: ps.userId });
const posts = await query
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
return await this.galleryPostEntityService.packMany(posts, me);
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 09f6acde9c..b4c1e2ec87 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
@@ -5,8 +5,8 @@ import type { NotesRepository, UsersRepository } from '@/models/index.js';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { DI } from '@/di-symbols.js';
-import { ApiError } from '../../error.js';
import { GetterService } from '@/server/api/GetterService.js';
+import { ApiError } from '../../error.js';
export const meta = {
tags: ['users'],
diff --git a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts
index 8591e4ab96..beb0ba85ff 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/create-from-public.ts
@@ -84,18 +84,20 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
private roleService: RoleService,
) {
super(meta, paramDef, async (ps, me) => {
- const list = await this.userListsRepository.findOneBy({
- id: ps.listId,
- isPublic: true,
+ const listExist = await this.userListsRepository.exist({
+ where: {
+ id: ps.listId,
+ isPublic: true,
+ },
});
- if (list === null) throw new ApiError(meta.errors.noSuchList);
+ if (!listExist) throw new ApiError(meta.errors.noSuchList);
const currentCount = await this.userListsRepository.countBy({
userId: me.id,
});
if (currentCount > (await this.roleService.getUserPolicies(me.id)).userListLimit) {
throw new ApiError(meta.errors.tooManyUserLists);
}
-
+
const userList = await this.userListsRepository.insert({
id: this.idService.genId(),
createdAt: new Date(),
@@ -114,20 +116,24 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
});
if (currentUser.id !== me.id) {
- const block = await this.blockingsRepository.findOneBy({
- blockerId: currentUser.id,
- blockeeId: me.id,
+ const blockExist = await this.blockingsRepository.exist({
+ where: {
+ blockerId: currentUser.id,
+ blockeeId: me.id,
+ },
});
- if (block) {
+ if (blockExist) {
throw new ApiError(meta.errors.youHaveBeenBlocked);
}
}
- const exist = await this.userListJoiningsRepository.findOneBy({
- userListId: userList.id,
- userId: currentUser.id,
+ const exist = await this.userListJoiningsRepository.exist({
+ where: {
+ userListId: userList.id,
+ userId: currentUser.id,
+ },
});
-
+
if (exist) {
throw new ApiError(meta.errors.alreadyAdded);
}
diff --git a/packages/backend/src/server/api/endpoints/users/lists/favorite.ts b/packages/backend/src/server/api/endpoints/users/lists/favorite.ts
index 263852fde1..2c09a47fef 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/favorite.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/favorite.ts
@@ -41,21 +41,25 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
private idService: IdService,
) {
super(meta, paramDef, async (ps, me) => {
- const userList = await this.userListsRepository.findOneBy({
- id: ps.listId,
- isPublic: true,
+ const userListExist = await this.userListsRepository.exist({
+ where: {
+ id: ps.listId,
+ isPublic: true,
+ },
});
- if (userList === null) {
+ if (!userListExist) {
throw new ApiError(meta.errors.noSuchList);
}
- const exist = await this.userListFavoritesRepository.findOneBy({
- userId: me.id,
- userListId: ps.listId,
+ const exist = await this.userListFavoritesRepository.exist({
+ where: {
+ userId: me.id,
+ userListId: ps.listId,
+ },
});
- if (exist !== null) {
+ if (exist) {
throw new ApiError(meta.errors.alreadyFavorited);
}
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 925037e484..6e1f6b2c62 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/push.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/push.ts
@@ -100,18 +100,22 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
// Check blocking
if (user.id !== me.id) {
- const block = await this.blockingsRepository.findOneBy({
- blockerId: user.id,
- blockeeId: me.id,
+ const blockExist = await this.blockingsRepository.exist({
+ where: {
+ blockerId: user.id,
+ blockeeId: me.id,
+ },
});
- if (block) {
+ if (blockExist) {
throw new ApiError(meta.errors.youHaveBeenBlocked);
}
}
- const exist = await this.userListJoiningsRepository.findOneBy({
- userListId: userList.id,
- userId: user.id,
+ const exist = await this.userListJoiningsRepository.exist({
+ where: {
+ userListId: userList.id,
+ userId: user.id,
+ },
});
if (exist) {
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 8077841c8c..3fd418d04e 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/show.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/show.ts
@@ -69,10 +69,12 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
userListId: ps.listId,
});
if (me !== null) {
- additionalProperties.isLiked = (await this.userListFavoritesRepository.findOneBy({
- userId: me.id,
- userListId: ps.listId,
- }) !== null);
+ additionalProperties.isLiked = await this.userListFavoritesRepository.exist({
+ where: {
+ userId: me.id,
+ userListId: ps.listId,
+ },
+ });
} else {
additionalProperties.isLiked = false;
}
diff --git a/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts b/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts
index be8e317816..a7c3b58947 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/unfavorite.ts
@@ -39,12 +39,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
private userListFavoritesRepository: UserListFavoritesRepository,
) {
super(meta, paramDef, async (ps, me) => {
- const userList = await this.userListsRepository.findOneBy({
- id: ps.listId,
- isPublic: true,
+ const userListExist = await this.userListsRepository.exist({
+ where: {
+ id: ps.listId,
+ isPublic: true,
+ },
});
- if (userList === null) {
+ if (!userListExist) {
throw new ApiError(meta.errors.noSuchList);
}
diff --git a/packages/backend/src/server/api/endpoints/users/notes.ts b/packages/backend/src/server/api/endpoints/users/notes.ts
index aaf94734a3..f42f84e6a7 100644
--- a/packages/backend/src/server/api/endpoints/users/notes.ts
+++ b/packages/backend/src/server/api/endpoints/users/notes.ts
@@ -120,7 +120,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
//#endregion
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.limit(ps.limit).getMany();
return await this.noteEntityService.packMany(timeline, me);
});
diff --git a/packages/backend/src/server/api/endpoints/users/pages.ts b/packages/backend/src/server/api/endpoints/users/pages.ts
index a105103f16..e9d13ba00f 100644
--- a/packages/backend/src/server/api/endpoints/users/pages.ts
+++ b/packages/backend/src/server/api/endpoints/users/pages.ts
@@ -48,7 +48,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
.andWhere('page.visibility = \'public\'');
const pages = await query
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
return await this.pageEntityService.packMany(pages);
diff --git a/packages/backend/src/server/api/endpoints/users/reactions.ts b/packages/backend/src/server/api/endpoints/users/reactions.ts
index ac401a60ee..37fc854c33 100644
--- a/packages/backend/src/server/api/endpoints/users/reactions.ts
+++ b/packages/backend/src/server/api/endpoints/users/reactions.ts
@@ -73,7 +73,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
this.queryService.generateVisibilityQuery(query, me);
const reactions = await query
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
return await Promise.all(reactions.map(reaction => this.noteReactionEntityService.pack(reaction, me, { withNote: true })));
diff --git a/packages/backend/src/server/api/endpoints/users/recommendation.ts b/packages/backend/src/server/api/endpoints/users/recommendation.ts
index 5498b8c854..d39657059a 100644
--- a/packages/backend/src/server/api/endpoints/users/recommendation.ts
+++ b/packages/backend/src/server/api/endpoints/users/recommendation.ts
@@ -44,7 +44,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
@Inject(DI.followingsRepository)
private followingsRepository: FollowingsRepository,
-
+
private userEntityService: UserEntityService,
private queryService: QueryService,
) {
@@ -70,7 +70,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
query.setParameters(followingQuery.getParameters());
- const users = await query.take(ps.limit).skip(ps.offset).getMany();
+ const users = await query.limit(ps.limit).skip(ps.offset).getMany();
return await this.userEntityService.packMany(users, me, { detail: true });
});
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 d19d4007d6..be361e02c4 100644
--- a/packages/backend/src/server/api/endpoints/users/report-abuse.ts
+++ b/packages/backend/src/server/api/endpoints/users/report-abuse.ts
@@ -1,4 +1,4 @@
-import * as sanitizeHtml from 'sanitize-html';
+import sanitizeHtml from 'sanitize-html';
import { Inject, Injectable } from '@nestjs/common';
import type { UsersRepository, AbuseUserReportsRepository } from '@/models/index.js';
import { IdService } from '@/core/IdService.js';
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 b001159ee8..1d0c7d0c1d 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
@@ -97,7 +97,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
users = await query
.orderBy('user.usernameLower', 'ASC')
- .take(ps.limit)
+ .limit(ps.limit)
.getMany();
if (users.length < ps.limit) {
@@ -110,7 +110,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
const otherUsers = await otherQuery
.orderBy('user.updatedAt', 'DESC')
- .take(ps.limit - users.length)
+ .limit(ps.limit - users.length)
.getMany();
users = users.concat(otherUsers);
@@ -122,7 +122,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
users = await query
.orderBy('user.updatedAt', 'DESC')
- .take(ps.limit - users.length)
+ .limit(ps.limit - users.length)
.getMany();
}
diff --git a/packages/backend/src/server/api/endpoints/users/search.ts b/packages/backend/src/server/api/endpoints/users/search.ts
index d7a60f0437..1180de3611 100644
--- a/packages/backend/src/server/api/endpoints/users/search.ts
+++ b/packages/backend/src/server/api/endpoints/users/search.ts
@@ -52,6 +52,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
super(meta, paramDef, async (ps, me) => {
const activeThreshold = new Date(Date.now() - (1000 * 60 * 60 * 24 * 30)); // 30日
+ ps.query = ps.query.trim();
const isUsername = ps.query.startsWith('@');
let users: User[] = [];
@@ -73,12 +74,12 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
users = await usernameQuery
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
- .take(ps.limit)
+ .limit(ps.limit)
.skip(ps.offset)
.getMany();
} else {
const nameQuery = this.usersRepository.createQueryBuilder('user')
- .where(new Brackets(qb => {
+ .where(new Brackets(qb => {
qb.where('user.name ILIKE :query', { query: '%' + sqlLikeEscape(ps.query) + '%' });
// Also search username if it qualifies as username
@@ -100,7 +101,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
users = await nameQuery
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
- .take(ps.limit)
+ .limit(ps.limit)
.skip(ps.offset)
.getMany();
@@ -126,7 +127,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
users = users.concat(await query
.orderBy('user.updatedAt', 'DESC', 'NULLS LAST')
- .take(ps.limit)
+ .limit(ps.limit)
.skip(ps.offset)
.getMany(),
);
diff --git a/packages/backend/src/server/api/endpoints/users/show.ts b/packages/backend/src/server/api/endpoints/users/show.ts
index ba432c273b..8e25af64fe 100644
--- a/packages/backend/src/server/api/endpoints/users/show.ts
+++ b/packages/backend/src/server/api/endpoints/users/show.ts
@@ -91,6 +91,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
let user;
const isModerator = await this.roleService.isModerator(me);
+ ps.username = ps.username?.trim();
if (ps.userIds) {
if (ps.userIds.length === 0) {