From 8ae067239cc350d7793e6c8e72f83a810a41e7c4 Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 21 Aug 2021 20:17:10 +0800 Subject: [PATCH] core: update vnode selection --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/discussion.ts | 2 +- packages/hydrooj/src/handler/notfound.ts | 6 +++++- packages/hydrooj/src/handler/problem.ts | 1 + packages/hydrooj/src/service/server.ts | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index a066e44f0..81a50e755 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.32.34", + "version": "2.32.35", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/discussion.ts b/packages/hydrooj/src/handler/discussion.ts index 6371c852d..b433a55c6 100644 --- a/packages/hydrooj/src/handler/discussion.ts +++ b/packages/hydrooj/src/handler/discussion.ts @@ -159,7 +159,7 @@ class DiscussionCreateHandler extends DiscussionHandler { if (highlight) this.checkPerm(PERM.PERM_HIGHLIGHT_DISCUSSION); if (pin) this.checkPerm(PERM.PERM_PIN_DISCUSSION); const did = await discussion.add( - domainId, typeMapper[type], this.vnode.docId, this.user._id, + domainId, typeMapper[type], this.vnode.id, this.user._id, title, content, this.request.ip, highlight, pin, ); this.response.body = { did }; diff --git a/packages/hydrooj/src/handler/notfound.ts b/packages/hydrooj/src/handler/notfound.ts index d94baa3c3..cca68883c 100644 --- a/packages/hydrooj/src/handler/notfound.ts +++ b/packages/hydrooj/src/handler/notfound.ts @@ -12,7 +12,11 @@ class NotFoundHandler extends Handler { throw new NotFoundError(this.request.path); } - all() { } + get() { } + post() { } + head() { } + put() { } + delete() { } } export async function apply() { diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 3b734e76e..de3f495a8 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -126,6 +126,7 @@ export class ProblemMainHandler extends ProblemHandler { for (const pid of pids) { // eslint-disable-next-line no-await-in-loop const pdoc = await problem.get(domainId, pid); + if (!pdoc) continue; if (!this.user.own(pdoc, PERM.PERM_EDIT_PROBLEM_SELF)) this.checkPerm(PERM.PERM_EDIT_PROBLEM); // eslint-disable-next-line no-await-in-loop await problem.del(domainId, pid); diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 05e6ee4db..15fd478d1 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -696,7 +696,7 @@ async function handle(ctx, HandlerClass, checker) { } else if (typeof h.post !== 'function') { throw new MethodNotAllowedError(method); } - } else if (typeof h[method] !== 'function' && typeof h.all !== 'function') { + } else if (typeof h[method] !== 'function') { throw new MethodNotAllowedError(method); }