mirror of
https://github.com/zkldi/Tachi.git
synced 2026-10-01 11:28:13 +03:00
Merge pull request #575 from TNG-dev/hotfix-optimise-update-score
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
import db from "external/mongo/db";
|
||||
import { KtLogger, rootLogger } from "lib/logger/logger";
|
||||
import { CreateCalculatedData } from "lib/score-import/framework/calculated-data/calculated-data";
|
||||
import { UpdateChartRanking } from "lib/score-import/framework/pb/create-pb-doc";
|
||||
import { CreateScoreID } from "lib/score-import/framework/score-importing/score-id";
|
||||
import { ScoreDocument } from "tachi-common";
|
||||
import { UpdateAllPBs } from "utils/calculations/recalc-scores";
|
||||
@@ -56,7 +57,7 @@ export default async function UpdateScore(oldScore: ScoreDocument, newScore: Sco
|
||||
context: ["Update Score", oldScore.scoreID, newScore.scoreID, FormatUserDoc(user)],
|
||||
}) as KtLogger;
|
||||
|
||||
logger.info("Received Update Score request.");
|
||||
logger.verbose("Received Update Score request.");
|
||||
|
||||
newScore.calculatedData = await CreateCalculatedData(
|
||||
newScore,
|
||||
@@ -82,7 +83,7 @@ export default async function UpdateScore(oldScore: ScoreDocument, newScore: Sco
|
||||
"scoreInfo.scoreID": oldScoreID,
|
||||
});
|
||||
|
||||
logger.info(`Updating ${sessions.length} sessions.`);
|
||||
logger.verbose(`Updating ${sessions.length} sessions.`);
|
||||
|
||||
// For every session that interacts with this score ID (there should only ever be one)
|
||||
for (const session of sessions) {
|
||||
@@ -117,24 +118,27 @@ export default async function UpdateScore(oldScore: ScoreDocument, newScore: Sco
|
||||
);
|
||||
}
|
||||
|
||||
logger.info(`Updating PBs.`);
|
||||
logger.verbose(`Updating PBs.`);
|
||||
|
||||
// Update the PBs to reference properly.
|
||||
// We run updateAllPbs on just the modified chart -- the reason
|
||||
// for this is to update ranking info incase that might fall out of
|
||||
// sync as a result.
|
||||
await UpdateAllPBs(undefined, {
|
||||
await UpdateAllPBs([userID], {
|
||||
chartID: newScore.chartID,
|
||||
});
|
||||
await UpdateAllPBs(undefined, {
|
||||
await UpdateAllPBs([userID], {
|
||||
chartID: oldScore.chartID,
|
||||
});
|
||||
|
||||
await UpdateChartRanking(newScore.chartID);
|
||||
await UpdateChartRanking(oldScore.chartID);
|
||||
|
||||
const imports = await db.imports.find({
|
||||
scoreIDs: oldScoreID,
|
||||
});
|
||||
|
||||
logger.info(`Updating ${imports.length} imports.`);
|
||||
logger.verbose(`Updating ${imports.length} imports.`);
|
||||
|
||||
for (const importDoc of imports) {
|
||||
await db.imports.update(
|
||||
@@ -149,5 +153,5 @@ export default async function UpdateScore(oldScore: ScoreDocument, newScore: Sco
|
||||
);
|
||||
}
|
||||
|
||||
logger.info(`Done updating score.`);
|
||||
logger.verbose(`Done updating score.`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user