From 189021d41a0eadfdd04a5d57db81f8682a2c83de Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 5 Aug 2021 17:53:11 +0800 Subject: [PATCH] core: problem discussion index --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/discussion.ts | 11 +++-------- packages/hydrooj/src/upgrade.ts | 11 +++++++++++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index e22afced1..9f62e79f1 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.30.13", + "version": "2.30.14", "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 536c0ce3a..effe9d12a 100644 --- a/packages/hydrooj/src/handler/discussion.ts +++ b/packages/hydrooj/src/handler/discussion.ts @@ -147,24 +147,19 @@ class DiscussionCreateHandler extends DiscussionHandler { } @param('type', Types.Name) - @param('name', Types.Name) @param('title', Types.Title) @param('content', Types.Content) @param('highlight', Types.Boolean) @param('pin', Types.Boolean) async post( - domainId: string, type: string, _name: string, - title: string, content: string, highlight = false, pin = false, + domainId: string, type: string, title: string, + content: string, highlight = false, pin = false, ) { await this.limitRate('add_discussion', 3600, 60); - let name: ObjectID | string | number; - if (ObjectID.isValid(_name)) name = new ObjectID(_name); - else if (isSafeInteger(+name)) name = +name; - else name = _name; if (highlight) this.checkPerm(PERM.PERM_HIGHLIGHT_DISCUSSION); if (pin) this.checkPerm(PERM.PERM_PIN_DISCUSSION); const did = await discussion.add( - domainId, typeMapper[type], name, this.user._id, + domainId, typeMapper[type], this.vnode.docId, this.user._id, title, content, this.request.ip, highlight, pin, ); this.response.body = { did }; diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index 59b82852c..d525d9d26 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -435,6 +435,17 @@ const scripts: UpgradeScript[] = [ }); return true; }, + async function _39_40() { + const _FRESH_INSTALL_IGNORE = 1; + await iterateAllDomain(async ({ _id }) => { + const ddocs = await discussion.getMulti(_id, { parentType: document.TYPE_PROBLEM }).toArray(); + for (const ddoc of ddocs) { + const pdoc = await problem.get(_id, ddoc.parentId as any); + await document.set(_id, document.TYPE_DISCUSSION, ddoc.docId, { parentId: pdoc.docId }); + } + }); + return true; + }, ]; export default scripts;