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