core: emit types for callable model operation

This commit is contained in:
undefined committed 2021-03-15 02:05:22 +08:00
1 parent 2fe5d37c03
commit 599c1f7c18
29 files changed
+329 -354

No files matched your search

+1 -1
View File
@@ -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,
+1 -1
View File
@@ -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';
+1 -1
View File
@@ -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';
+2 -2
View File
@@ -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 {
+1 -1
View File
@@ -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';
+1 -1
View File
@@ -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 -1
View File
@@ -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,
+1 -1
View File
@@ -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';
+6 -17
View File
@@ -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));
+1 -1
View File
@@ -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 {
+1 -1
View File
@@ -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,
+2 -2
View File
@@ -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';