Implement batch transmission of unanswered questions and automated session cleanup

This commit is contained in:
2026-04-26 20:17:48 +02:00
parent 3b725e3096
commit 307e30d932
2 changed files with 72 additions and 2 deletions
+29 -1
View File
@@ -739,7 +739,19 @@ function WettkampfSelectPage({ navigate }) {
setProgressDialog(null);
};
const startFresh = () => {
const startFresh = async () => {
setChecking(true);
try {
await api.post('/api/results/abandon', {
sessionId: progressDialog.sessionId,
setId: selectedSet.id,
nutzername: name.trim(),
expectedCount: selectedSet.wettkampfCount
});
} catch (e) {
console.error('Abandon error:', e);
}
setChecking(false);
navigate('wettkampf-quiz', {
setId: selectedSet.id, setName: selectedSet.name,
name: name.trim(), questionCount: selectedSet.wettkampfCount,
@@ -1078,6 +1090,22 @@ function WettkampfQuizPage({ params, navigate }) {
if (rowsToUpdate.length > 0) {
await api.put('/api/results/finalize', { results: rowsToUpdate });
}
const rowsToCreate = finalResults.filter((r) => !r.rowId);
if (rowsToCreate.length > 0) {
const batched = rowsToCreate.map((r) => ({
Nutzername: params.name,
Frage_ID: r.questionId,
Fragenset: params.setName,
Antwort: '',
Richtig: false,
Punkte: 0,
Session_ID: sessionId.current,
Modus: 'Wettkampf',
Zeitstempel: new Date().toISOString(),
}));
await api.post('/api/results', { answers: batched });
}
} catch (e) {
console.error('Finalize error:', e);
}