From 2fe5d37c03a67daa23d3c82719ae65fcf771ee4f Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 14 Mar 2021 12:38:27 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E4=BF=AE=E5=A4=8D=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=A1=B5=E9=9D=A2=E9=9D=A2=E5=8C=85=E5=B1=91?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E7=82=B9=E5=87=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 1 + packages/hydrooj/src/model/document.ts | 8 +++----- packages/hydrooj/src/typeutils.ts | 1 + 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 93890c178..59ed86e73 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.20.18", + "version": "2.20.19", "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 ea7e49060..9ea6a3a07 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -64,6 +64,7 @@ export class ProblemMainHandler extends ProblemHandler { ]; if (q) { query.$text = { $search: q }; + path[1][1] = 'problem_main'; path.push([q, null, null, true]); } if (!this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) query.hidden = false; diff --git a/packages/hydrooj/src/model/document.ts b/packages/hydrooj/src/model/document.ts index 5d8e8a7ca..e794a0fd1 100644 --- a/packages/hydrooj/src/model/document.ts +++ b/packages/hydrooj/src/model/document.ts @@ -7,7 +7,7 @@ import { Pdoc, Ddoc, Drdoc, Tdoc, TrainingDoc, ProblemStatusDoc, } from '../interface'; import { buildProjection } from '../utils'; -import { NumberKeys, ArrayKeys, Projection } from '../typeutils'; +import { NumberKeys, ArrayKeys, Projection, MaybeArray } from '../typeutils'; import db from '../service/db'; import * as bus from '../service/bus'; import { Content } from '../loader'; @@ -202,7 +202,7 @@ export async function pull>( domainId: string, docType: T, docId: DocType[T]['docId'], - key: K, subId: DocType[T][K][0]['_id'] | DocType[T][K][0]['_id'][], + key: K, subId: MaybeArray, ): Promise { subId = (subId instanceof Array) ? subId : [subId]; const res = await coll.findOneAndUpdate( @@ -235,9 +235,7 @@ export async function setSub, ): Promise { const $set = {}; - for (const k in args) { - $set[`${key}.$.${k}`] = args[k]; - } + for (const k in args) $set[`${key}.$.${k}`] = args[k]; const res = await coll.findOneAndUpdate( { domainId, diff --git a/packages/hydrooj/src/typeutils.ts b/packages/hydrooj/src/typeutils.ts index b84933988..5ae6dcccf 100644 --- a/packages/hydrooj/src/typeutils.ts +++ b/packages/hydrooj/src/typeutils.ts @@ -10,3 +10,4 @@ export type Value = { export type Projection = (string & keyof O)[]; export type Omit = Pick>; export type Filter = T extends U ? T : never; +export type MaybeArray = T | T[];