mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17:38:19 +08:00
core&ui: contest: tsdoc projection for contest
This commit is contained in:
1 parent
8f7d81ddca
commit
dbe369d0c6
9 files changed
+57
-28
No files matched your search
@@ -2,8 +2,9 @@
|
||||
import { FilterQuery } from 'mongodb';
|
||||
import type {
|
||||
DomainDoc, ProblemStatusDoc, RecordDoc,
|
||||
Udoc,
|
||||
Tdoc, Udoc,
|
||||
} from './interface';
|
||||
import * as contest from './model/contest';
|
||||
import * as document from './model/document';
|
||||
import domain from './model/domain';
|
||||
import problem, { Field, ProblemDoc } from './model/problem';
|
||||
@@ -20,6 +21,15 @@ export async function iterateAllUser(cb: (udoc: Udoc, current?: number, total?:
|
||||
for (const i in udocs) await cb(udocs[i], +i, udocs.length);
|
||||
}
|
||||
|
||||
export async function iterateAllContest(cb: (tdoc: Tdoc) => Promise<any>) {
|
||||
await iterateAllDomain(async (ddoc) => {
|
||||
const tdocs = await contest.getMulti(ddoc._id, {}).toArray();
|
||||
for (const tdoc of tdocs) {
|
||||
await cb(tdoc);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export async function iterateAllPsdoc(filter: FilterQuery<ProblemStatusDoc>, cb: (psdoc: ProblemStatusDoc) => Promise<any>) {
|
||||
await iterateAllDomain(async ({ _id: domainId }) => {
|
||||
const cursor = document.getMultiStatus(domainId, document.TYPE_PROBLEM, filter);
|
||||
|
||||
Reference in new issue
Block a user