mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: emit types for callable model operation
This commit is contained in:
1 parent
2fe5d37c03
commit
599c1f7c18
29 files changed
+329
-354
No files matched your search
@@ -15,7 +15,7 @@ import * as document from '../model/document';
|
||||
import * as problem from '../model/problem';
|
||||
import * as domain from '../model/domain';
|
||||
import * as record from '../model/record';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as message from '../model/message';
|
||||
import {
|
||||
Route, Handler, Types, param,
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
} from '../interface';
|
||||
import paginate from '../lib/paginate';
|
||||
import * as system from '../model/system';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as oplog from '../model/oplog';
|
||||
import * as message from '../model/message';
|
||||
import * as discussion from '../model/discussion';
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
} from '../error';
|
||||
import { log2 } from '../utils';
|
||||
import type { DomainDoc } from '../interface';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as domain from '../model/domain';
|
||||
import * as discussion from '../model/discussion';
|
||||
import * as system from '../model/system';
|
||||
|
||||
@@ -14,11 +14,11 @@ import * as contest from '../model/contest';
|
||||
import * as message from '../model/message';
|
||||
import * as document from '../model/document';
|
||||
import * as system from '../model/system';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as setting from '../model/setting';
|
||||
import * as domain from '../model/domain';
|
||||
import * as discussion from '../model/discussion';
|
||||
import * as token from '../model/token';
|
||||
import token from '../model/token';
|
||||
import * as training from '../model/training';
|
||||
import { PERM, PRIV } from '../model/builtin';
|
||||
import {
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
import * as bus from '../service/bus';
|
||||
import * as domain from '../model/domain';
|
||||
import { PERM } from '../model/builtin';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as system from '../model/system';
|
||||
import * as contest from '../model/contest';
|
||||
import * as discussion from '../model/discussion';
|
||||
|
||||
@@ -5,7 +5,7 @@ import { ValidationError } from '../error';
|
||||
import * as check from '../check';
|
||||
import * as setting from '../model/setting';
|
||||
import * as system from '../model/system';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import { STATUS, PRIV } from '../model/builtin';
|
||||
import * as record from '../model/record';
|
||||
import {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* eslint-disable camelcase */
|
||||
import { BadRequestError } from '../error';
|
||||
import { PRIV } from '../model/builtin';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import db from '../service/db';
|
||||
import {
|
||||
Route, Handler, Types, param,
|
||||
|
||||
@@ -15,7 +15,7 @@ import * as system from '../model/system';
|
||||
import * as problem from '../model/problem';
|
||||
import * as record from '../model/record';
|
||||
import * as domain from '../model/domain';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as solution from '../model/solution';
|
||||
import { PERM, PRIV } from '../model/builtin';
|
||||
import storage from '../service/storage';
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import { FilterQuery, ObjectID } from 'mongodb';
|
||||
import { PermissionError, RecordNotFoundError } from '../error';
|
||||
import { Rdoc } from '../interface';
|
||||
import { PERM, STATUS, PRIV } from '../model/builtin';
|
||||
import * as system from '../model/system';
|
||||
import * as problem from '../model/problem';
|
||||
import * as record from '../model/record';
|
||||
import * as contest from '../model/contest';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import paginate from '../lib/paginate';
|
||||
import * as bus from '../service/bus';
|
||||
import {
|
||||
Route, Handler, Connection, ConnectionHandler, Types, param,
|
||||
} from '../service/server';
|
||||
import { Rdoc } from '../interface';
|
||||
|
||||
const RecordHandler = contest.ContestHandlerMixin(Handler);
|
||||
|
||||
@@ -146,14 +146,10 @@ class RecordMainConnectionHandler extends RecordConnectionHandler {
|
||||
|
||||
@param('tid', Types.ObjectID, true)
|
||||
async prepare(domainId: string, tid?: ObjectID) {
|
||||
this.domainId = domainId;
|
||||
if (tid) {
|
||||
const tdoc = await contest.get(domainId, tid, -1);
|
||||
if (this.canShowRecord(tdoc)) this.tid = tid.toHexString();
|
||||
else {
|
||||
this.close();
|
||||
return;
|
||||
}
|
||||
else throw new PermissionError(PERM.PERM_VIEW_CONTEST_HIDDEN_SCOREBOARD);
|
||||
}
|
||||
this.dispose = bus.on('record/change', this.onRecordChange.bind(this));
|
||||
}
|
||||
@@ -161,12 +157,8 @@ class RecordMainConnectionHandler extends RecordConnectionHandler {
|
||||
async message(msg) {
|
||||
if (msg.rids instanceof Array) {
|
||||
const rids = msg.rids.map((id: string) => new ObjectID(id));
|
||||
const rdocs = await record.getMulti(
|
||||
this.domainId, { _id: { $in: rids } },
|
||||
).toArray();
|
||||
for (const rdoc of rdocs) {
|
||||
this.onRecordChange(rdoc);
|
||||
}
|
||||
const rdocs = await record.getMulti(this.domainId, { _id: { $in: rids } }).toArray();
|
||||
for (const rdoc of rdocs) this.onRecordChange(rdoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,10 +191,7 @@ class RecordDetailConnectionHandler extends contest.ContestHandlerMixin(Connecti
|
||||
const rdoc = await record.get(domainId, rid);
|
||||
if (rdoc.contest) {
|
||||
const tdoc = await contest.get(domainId, rdoc.contest.tid, -1);
|
||||
if (!this.canShowRecord(tdoc)) {
|
||||
this.close();
|
||||
return;
|
||||
}
|
||||
if (!this.canShowRecord(tdoc)) throw new PermissionError(PERM.PERM_VIEW_CONTEST_HIDDEN_SCOREBOARD);
|
||||
}
|
||||
this.rid = rid.toString();
|
||||
this.dispose = bus.on('record/change', this.onRecordChange.bind(this));
|
||||
|
||||
@@ -5,7 +5,7 @@ import { PermissionError, InvalidTokenError, RemoteOnlineJudgeError } from '../e
|
||||
import { Logger } from '../logger';
|
||||
import { ProblemAdd } from '../lib/ui';
|
||||
import { PERM } from '../model/builtin';
|
||||
import * as token from '../model/token';
|
||||
import token from '../model/token';
|
||||
import * as problem from '../model/problem';
|
||||
import * as system from '../model/system';
|
||||
import {
|
||||
|
||||
@@ -9,7 +9,7 @@ import { PERM, PRIV } from '../model/builtin';
|
||||
import * as problem from '../model/problem';
|
||||
import * as builtin from '../model/builtin';
|
||||
import * as training from '../model/training';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as bus from '../service/bus';
|
||||
import {
|
||||
Route, Handler, Types, param,
|
||||
|
||||
@@ -7,9 +7,9 @@ import {
|
||||
import {
|
||||
Route, Handler, Types, param, post,
|
||||
} from '../service/server';
|
||||
import * as user from '../model/user';
|
||||
import user from '../model/user';
|
||||
import * as oauth from '../model/oauth';
|
||||
import * as token from '../model/token';
|
||||
import token from '../model/token';
|
||||
import * as record from '../model/record';
|
||||
import * as problem from '../model/problem';
|
||||
import * as task from '../model/task';
|
||||
|
||||
Reference in new issue
Block a user