From dbb3c5069fd1bb92237be0530019baad15bb1d57 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 1 Mar 2026 01:26:09 +0800 Subject: [PATCH] core: domain_star: check existance --- packages/hydrooj/src/handler/home.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/src/handler/home.ts b/packages/hydrooj/src/handler/home.ts index 6250d9f7b..e097daff1 100644 --- a/packages/hydrooj/src/handler/home.ts +++ b/packages/hydrooj/src/handler/home.ts @@ -517,15 +517,18 @@ class HomeDomainHandler extends Handler { this.response.body = { ddocs, canManage, role }; } - @param('id', Types.String) + @param('id', Types.DomainId) @param('star', Types.Boolean) async postStar({ }, id: string, star = false) { - if (star) await user.setById(this.user._id, { pinnedDomains: [...this.user.pinnedDomains, id] }); - else user.setById(this.user._id, { pinnedDomains: this.user.pinnedDomains.filter((i) => i !== id) }); + if (star) { + const ddoc = await domain.get(id); + if (!ddoc) throw new NotFoundError(id); + await user.setById(this.user._id, { pinnedDomains: [...this.user.pinnedDomains, id] }); + } else user.setById(this.user._id, { pinnedDomains: this.user.pinnedDomains.filter((i) => i !== id) }); this.back({ star }); } - @param('id', Types.String) + @param('id', Types.DomainId) async postLeave({ }, id: string) { if (id === 'system') throw new BadRequestError(); const ddoc = await domain.get(id);