From de5ac33027269f3af937102b3469cee080fb53b9 Mon Sep 17 00:00:00 2001 From: zkldi Date: Thu, 29 Apr 2021 16:25:12 +0100 Subject: [PATCH] PB Processor --- .../framework/core/pb/process-pbs.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 server/src/score-import/framework/core/pb/process-pbs.ts diff --git a/server/src/score-import/framework/core/pb/process-pbs.ts b/server/src/score-import/framework/core/pb/process-pbs.ts new file mode 100644 index 000000000..b0e3727cd --- /dev/null +++ b/server/src/score-import/framework/core/pb/process-pbs.ts @@ -0,0 +1,27 @@ +import { integer, PBScoreDocument } from "kamaitachi-common"; +import db from "../../../../db/db"; +import { KtLogger } from "../../../../types"; +import { CreatePBDoc } from "./create-pb-doc"; + +export async function ProcessPBs(userID: integer, chartIDs: Set, logger: KtLogger) { + let promises = []; + + for (const chartID of chartIDs) { + promises.push(CreatePBDoc(userID, chartID, logger)); + } + + let pbDocs = (await Promise.all(promises)).filter((e) => !!e) as PBScoreDocument[]; + + let r = await db["score-pbs"].bulkWrite( + pbDocs.map((e) => ({ + updateOne: { + filter: { chartID: e.chartID, userID: e.userID }, + update: { $set: e }, + upsert: true, + }, + })) + ); + + // @ts-expect-error monk machine broken + return r.nUpserted; +}