fix types

This commit is contained in:
undefined committed 2022-11-29 00:11:47 +08:00
1 parent af0649f471
commit 5fc04328ad
5 files changed
+13 -11

No files matched your search

+5 -2
View File
@@ -110,8 +110,11 @@ export type Udict = Record<number, User>;
export interface BaseUser {
_id: number;
uname: string;
mail: string;
avatar: string;
displayName: string;
school?: string;
displayName?: string;
studentId?: string;
}
export type BaseUserDict = Record<number, BaseUser>;
@@ -509,7 +512,7 @@ export interface ContestRule<T = any> {
) => Promise<ScoreboardRow>;
scoreboardRow: (
this: ContestRule<T>, isExport: boolean, _: (s: string) => string,
tdoc: Tdoc<30>, pdict: ProblemDict, udoc: Udoc | User, rank: number, tsdoc: ContestStat & T,
tdoc: Tdoc<30>, pdict: ProblemDict, udoc: BaseUser, rank: number, tsdoc: ContestStat & T,
meta?: any,
) => Promise<ScoreboardRow>;
scoreboard: (
+3 -3
View File
@@ -6,8 +6,8 @@ import {
ContestScoreboardHiddenError, ValidationError,
} from '../error';
import {
ContestRule, ContestRules, ProblemDict,
ScoreboardNode, ScoreboardRow, Tdoc, Udict,
BaseUserDict, ContestRule, ContestRules, ProblemDict,
ScoreboardNode, ScoreboardRow, Tdoc,
} from '../interface';
import ranked from '../lib/rank';
import * as bus from '../service/bus';
@@ -722,7 +722,7 @@ export function canShowScoreboard(tdoc: Tdoc<30>, allowPermOverride = true) {
export async function getScoreboard(
this: Handler, domainId: string, tid: ObjectID, isExport = false,
): Promise<[Tdoc<30>, ScoreboardRow[], Udict, ProblemDict]> {
): Promise<[Tdoc<30>, ScoreboardRow[], BaseUserDict, ProblemDict]> {
const tdoc = await get(domainId, tid);
if (!canShowScoreboard.call(this, tdoc)) throw new ContestScoreboardHiddenError(tid);
const tsdocsCursor = getMultiStatus(domainId, { docId: tid }).sort(RULES[tdoc.rule].statusSort);
+1 -1
View File
@@ -347,7 +347,7 @@ class UserModel {
static async getListForRender(domainId: string, uids: number[]) {
const [udocs, dudocs] = await Promise.all([
UserModel.getMulti({ _id: { $in: uids } }, ['_id', 'uname', 'avatar']).toArray(),
UserModel.getMulti({ _id: { $in: uids } }, ['_id', 'uname', 'avatar', 'school', 'studentId']).toArray(),
domain.getDomainUserMulti(domainId, uids).project({ uid: 1, displayName: 1 }).toArray(),
]);
const udict = {};
+3 -3
View File
@@ -6,9 +6,9 @@ import pm2 from '@hydrooj/utils/lib/locate-pm2';
import type { ProblemSolutionHandler } from '../handler/problem';
import type { UserRegisterHandler } from '../handler/user';
import type {
DiscussionDoc, DomainDoc, FileInfo,
BaseUserDict, DiscussionDoc, DomainDoc, FileInfo,
MessageDoc, ProblemDict, ProblemDoc, RecordDoc,
ScoreboardRow, Tdoc, TrainingDoc, Udict, User,
ScoreboardRow, Tdoc, TrainingDoc, User,
} from '../interface';
import type { DocType } from '../model/document';
import type { ConnectionHandler, Handler } from './server';
@@ -89,7 +89,7 @@ export interface EventMap extends LifecycleEvents, HandlerEvents {
'contest/before-add': (payload: Partial<Tdoc<30>>) => VoidReturn
'contest/add': (payload: Partial<Tdoc<30>>, id: ObjectID) => VoidReturn
'contest/scoreboard': (tdoc: Tdoc<30>, rows: ScoreboardRow[], udict: Udict, pdict: ProblemDict) => VoidReturn
'contest/scoreboard': (tdoc: Tdoc<30>, rows: ScoreboardRow[], udict: BaseUserDict, pdict: ProblemDict) => VoidReturn
'oplog/log': (type: string, handler: Handler, args: any, data: any) => VoidReturn;
+1 -2
View File
@@ -4,8 +4,7 @@ import crypto from 'crypto';
import esbuild from 'esbuild';
import {
ContestModel, Context, fs, Handler, Logger, ObjectID, PERM, PRIV, ProblemModel, Schema,
SettingModel, SystemModel, SystemSettings, UiContextBase,
UserModel,
SettingModel, SystemModel, SystemSettings, UiContextBase, UserModel,
} from 'hydrooj';
import { debounce } from 'lodash';
import { tmpdir } from 'os';