From cfa08151f66e82f7310c0301d6262d293fe36c5b Mon Sep 17 00:00:00 2001 From: Miodec Date: Tue, 30 Aug 2022 15:25:47 +0200 Subject: [PATCH] removed duplicating code closes #3464 --- frontend/src/ts/test/test-logic.ts | 85 +++++------------------------- 1 file changed, 14 insertions(+), 71 deletions(-) diff --git a/frontend/src/ts/test/test-logic.ts b/frontend/src/ts/test/test-logic.ts index 4ef0b2d22..0f6502679 100644 --- a/frontend/src/ts/test/test-logic.ts +++ b/frontend/src/ts/test/test-logic.ts @@ -1268,76 +1268,7 @@ export async function retrySavingResult(): Promise { Notifications.add("Retrying to save..."); - const response = await Ape.results.save(completedEvent); - - AccountButton.loading(false); - Result.hideCrown(); - - if (response.status !== 200) { - console.log("Error saving result", completedEvent); - retrySaving.canRetry = true; - $("#retrySavingResultButton").removeClass("hidden"); - retrySaving.completedEvent = completedEvent; - return Notifications.add("Failed to save result: " + response.message, -1); - } - - if (response.data.xp) { - const snapxp = DB.getSnapshot().xp; - AccountButton.updateXpBar( - snapxp, - response.data.xp, - response.data.dailyXpBonus, - response.data.xpBreakdown - ); - DB.addXp(response.data.xp); - } - - completedEvent._id = response.data.insertedId; - if (response.data.isPb) { - completedEvent.isPb = true; - } - - DB.saveLocalResult(completedEvent); - DB.updateLocalStats( - TestStats.restartCount + 1, - completedEvent.testDuration + - completedEvent.incompleteTestSeconds - - completedEvent.afkDuration - ); - - AnalyticsController.log("testCompleted"); - - if (response.data.isPb) { - //new pb - Result.showCrown(); - Result.updateCrown(); - DB.saveLocalPB( - Config.mode, - completedEvent.mode2, - Config.punctuation, - Config.language, - Config.difficulty, - Config.lazyMode, - completedEvent.wpm, - completedEvent.acc, - completedEvent.rawWpm, - completedEvent.consistency - ); - } - - if (response.data.dailyLeaderboardRank) { - Notifications.add( - `New ${completedEvent.language} ${completedEvent.mode} ${completedEvent.mode2} rank: ` + - Misc.getPositionString(response.data.dailyLeaderboardRank), - 1, - 10, - "Daily Leaderboard", - "list-ol" - ); - } - - $("#retrySavingResultButton").addClass("hidden"); - Notifications.add("Result saved", 1); + saveResult(completedEvent, true); } function buildCompletedEvent(difficultyFailed: boolean): CompletedEvent { @@ -1688,6 +1619,13 @@ export async function finish(difficultyFailed = false): Promise { completedEvent.hash = objectHash(completedEvent); + saveResult(completedEvent, false); +} + +async function saveResult( + completedEvent: CompletedEvent, + isRetrying: boolean +): Promise { const response = await Ape.results.save(completedEvent); AccountButton.loading(false); @@ -1697,7 +1635,9 @@ export async function finish(difficultyFailed = false): Promise { console.log("Error saving result", completedEvent); retrySaving.canRetry = true; $("#retrySavingResultButton").removeClass("hidden"); - retrySaving.completedEvent = completedEvent; + if (!isRetrying) { + retrySaving.completedEvent = completedEvent; + } return Notifications.add("Failed to save result: " + response.message, -1); } @@ -1757,6 +1697,9 @@ export async function finish(difficultyFailed = false): Promise { } $("#retrySavingResultButton").addClass("hidden"); + if (isRetrying) { + Notifications.add("Result saved", 1); + } } export function fail(reason: string): void {