summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-02-12 10:36:43 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-02-12 10:36:43 +0900
commitb55d26387b6a56c90c9dc96a90d9fffaef98bab4 (patch)
tree106bf4f3da2221360e7ab2d60ca02df6a3caa77b /packages/backend/src
parentenhance: レートリミットを0%にできるように (diff)
downloadmisskey-b55d26387b6a56c90c9dc96a90d9fffaef98bab4.tar.gz
misskey-b55d26387b6a56c90c9dc96a90d9fffaef98bab4.tar.bz2
misskey-b55d26387b6a56c90c9dc96a90d9fffaef98bab4.zip
improve error handling
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/core/UserListService.ts4
-rw-r--r--packages/backend/src/server/api/endpoints/users/lists/push.ts17
2 files changed, 18 insertions, 3 deletions
diff --git a/packages/backend/src/core/UserListService.ts b/packages/backend/src/core/UserListService.ts
index c174394999..bc726a1feb 100644
--- a/packages/backend/src/core/UserListService.ts
+++ b/packages/backend/src/core/UserListService.ts
@@ -14,6 +14,8 @@ import { RoleService } from '@/core/RoleService.js';
@Injectable()
export class UserListService {
+ public static TooManyUsersError = class extends Error {};
+
constructor(
@Inject(DI.usersRepository)
private usersRepository: UsersRepository,
@@ -36,7 +38,7 @@ export class UserListService {
userListId: list.id,
});
if (currentCount > (await this.roleService.getUserPolicies(me.id)).userEachUserListsLimit) {
- throw new Error('Too many users');
+ throw new UserListService.TooManyUsersError();
}
await this.userListJoiningsRepository.insert({
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 3a079ee1ab..1c1fdc23f1 100644
--- a/packages/backend/src/server/api/endpoints/users/lists/push.ts
+++ b/packages/backend/src/server/api/endpoints/users/lists/push.ts
@@ -45,6 +45,12 @@ export const meta = {
code: 'YOU_HAVE_BEEN_BLOCKED',
id: '990232c5-3f9d-4d83-9f3f-ef27b6332a4b',
},
+
+ tooManyUsers: {
+ message: 'You can not push users any more.',
+ code: 'TOO_MANY_USERS',
+ id: '2dd9752e-a338-413d-8eec-41814430989b',
+ },
},
} as const;
@@ -110,8 +116,15 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
throw new ApiError(meta.errors.alreadyAdded);
}
- // Push the user
- await this.userListService.push(user, userList, me);
+ try {
+ await this.userListService.push(user, userList, me);
+ } catch (err) {
+ if (err instanceof UserListService.TooManyUsersError) {
+ throw new ApiError(meta.errors.tooManyUsers);
+ }
+
+ throw err;
+ }
});
}
}