From b8c67114e197731a4f839eb1b765e0c2e6c7505f Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 5 Jul 2021 11:48:10 +0800 Subject: [PATCH] core: fix when tsdoc doesn't exist --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 5 ++++- packages/hydrooj/src/model/discussion.ts | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index d404c759a..f32615055 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.29.19", + "version": "2.29.20", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index ed6cd8638..6a0b516b3 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -91,7 +91,10 @@ export class ProblemMainHandler extends ProblemHandler { if (sort) pdocs = pdocs.sort((a, b) => sort.indexOf(a.docId) - sort.indexOf(b.docId)); if (q) { const pdoc = await problem.get(domainId, +q || q, problem.PROJECTION_LIST); - if (pdoc) pdocs.filter((doc) => doc.docId !== pdoc.docId).unshift(pdoc); + if (pdoc) { + pdocs = pdocs.filter((doc) => doc.docId !== pdoc.docId); + pdocs.unshift(pdoc); + } } if (this.user.hasPriv(PRIV.PRIV_USER_PROFILE)) { psdict = await problem.getListStatus( diff --git a/packages/hydrooj/src/model/discussion.ts b/packages/hydrooj/src/model/discussion.ts index 73f16a1f6..08d1d5a87 100644 --- a/packages/hydrooj/src/model/discussion.ts +++ b/packages/hydrooj/src/model/discussion.ts @@ -245,7 +245,7 @@ export async function getVnode(domainId: string, type: number, id: string, uid?: if (!tdoc) throw new DiscussionNodeNotFoundError(id); if (uid) { const tsdoc = await model.getStatus(domainId, _id, uid); - tdoc.attend = tsdoc.attend || tsdoc.enroll; + tdoc.attend = tsdoc?.attend || tsdoc?.enroll; } return { ...tdoc, type, id }; }