core: move problem/del to problem/delete

This commit is contained in:
undefined committed 2025-10-17 19:36:42 +08:00
1 parent 2858e96414
commit 7893ea38d7
5 files changed
+3 -5

No files matched your search

+1 -1
View File
@@ -107,7 +107,7 @@ export default class ElasticSearchService extends Service {
document: processDocument(pdoc),
});
});
this.ctx.on('problem/del', async (domainId, docId) => {
this.ctx.on('problem/delete', async (domainId, docId) => {
await this.client.delete({
index: 'problem',
id: `${domainId}/${docId}`,
+1 -1
View File
@@ -636,7 +636,7 @@ export class ContestFileDownloadHandler extends ContestDetailBaseHandler {
@param('noDisposition', Types.Boolean)
@param('type', Types.Range(['public', 'private']), true)
async get(domainId: string, tid: ObjectId, filename: string, noDisposition = false, type = 'private') {
if (type === 'private' && !this.user.own(this.tdoc)) {
if (type === 'private' && !this.user.own(this.tdoc) && !this.user.hasPerm(PERM.PERM_EDIT_CONTEST)) {
if (!this.tsdoc?.attend) throw new ContestNotAttendedError(domainId, tid);
if (!contest.isOngoing(this.tdoc) && !contest.isDone(this.tdoc)) throw new ContestNotLiveError(domainId, tid);
if (!this.tsdoc.startAt) await contest.setStatus(domainId, tid, this.user._id, { startAt: new Date() });
-1
View File
@@ -282,7 +282,6 @@ export class ProblemModel {
.then((items) => storage.del(items.map((item) => `problem/${domainId}/${docId}/${item.name}`))),
bus.parallel('problem/delete', domainId, docId),
]);
await bus.emit('problem/del', domainId, docId);
return !!res[0][0].deletedCount;
}
-1
View File
@@ -72,7 +72,6 @@ export interface EventMap {
'problem/before-edit': (doc: Partial<ProblemDoc>, $unset: OnlyFieldsOfType<ProblemDoc, any, true | '' | 1>) => VoidReturn;
'problem/edit': (doc: ProblemDoc) => VoidReturn;
'problem/before-del': (domainId: string, docId: number) => VoidReturn;
'problem/del': (domainId: string, docId: number) => VoidReturn;
'problem/list': (query: Filter<ProblemDoc>, handler: any, sort?: string[]) => VoidReturn;
'problem/get': (doc: ProblemDoc, handler: any) => VoidReturn;
'problem/delete': (domainId: string, docId: number) => VoidReturn;
+1 -1
View File
@@ -73,7 +73,7 @@ export class SonicService extends Service {
.then(() => this.push('problem', `${pdoc.domainId}@content`, id, pdoc.content.toString())),
]).catch((e) => logger.error(e));
});
yield this.ctx.on('problem/del', async (domainId, docId) => {
yield this.ctx.on('problem/delete', async (domainId, docId) => {
const id = `${domainId}/${docId}`;
await Promise.all([
this.flusho('problem', `${domainId}@title`, id),