From c26fab42cf7a2a2f2341ac496fe6279a214e074b Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 21 Apr 2023 18:19:53 +0800 Subject: [PATCH] core: judge: emit optional raw payload --- packages/hydrooj/src/handler/judge.ts | 4 ++-- packages/hydrooj/src/service/bus.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/src/handler/judge.ts b/packages/hydrooj/src/handler/judge.ts index 7a524066..d731172b 100644 --- a/packages/hydrooj/src/handler/judge.ts +++ b/packages/hydrooj/src/handler/judge.ts @@ -69,7 +69,7 @@ export async function next(body: Partial) { if (!rdoc) return; const { $set, $push } = processPayload(rdoc, body); rdoc = await record.update(rdoc.domainId, body.rid, $set, $push, {}, body.addProgress ? { progress: body.addProgress } : {}); - bus.broadcast('record/change', rdoc!, $set, $push); + bus.broadcast('record/change', rdoc!, $set, $push, body); } export async function postJudge(rdoc: RecordDoc) { @@ -139,7 +139,7 @@ export async function end(body: Partial) { await sleep(100); // Make sure that all 'next' event already triggered rdoc = await record.update(rdoc.domainId, body.rid, $set, $push, $unset); await postJudge(rdoc); - bus.broadcast('record/change', rdoc); // trigger a full update + bus.broadcast('record/change', rdoc, null, null, body); // trigger a full update } export class JudgeFilesDownloadHandler extends Handler { diff --git a/packages/hydrooj/src/service/bus.ts b/packages/hydrooj/src/service/bus.ts index 8f360bad..64f953c3 100644 --- a/packages/hydrooj/src/service/bus.ts +++ b/packages/hydrooj/src/service/bus.ts @@ -98,7 +98,7 @@ export interface EventMap extends LifecycleEvents, HandlerEvents { 'training/list': (query: Filter, handler: any) => VoidReturn 'training/get': (tdoc: TrainingDoc, handler: any) => VoidReturn - 'record/change': (rdoc: RecordDoc, $set?: any, $push?: any) => void + 'record/change': (rdoc: RecordDoc, $set?: any, $push?: any, body?: any) => void 'record/judge': (rdoc: RecordDoc, updated: boolean) => VoidReturn } /* eslint-enable @typescript-eslint/naming-convention */