From 8baef6047b0865f07ed6a33e99ea85f854b5329f Mon Sep 17 00:00:00 2001 From: aknuth Date: Fri, 13 Dec 2024 11:59:04 +0100 Subject: [PATCH] isGraduated eingebaut --- deck_endpoints.py | 50 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/deck_endpoints.py b/deck_endpoints.py index 8fd524f..9efb262 100644 --- a/deck_endpoints.py +++ b/deck_endpoints.py @@ -38,7 +38,8 @@ def init_db(): ivl REAL DEFAULT 0.0, factor REAL DEFAULT 2.5, reps INTEGER DEFAULT 0, - lapses INTEGER DEFAULT 0 + lapses INTEGER DEFAULT 0, + isGraduated INTEGER DEFAULT 0 -- Neue Spalte hinzugefügt ) ''') conn.commit() @@ -187,6 +188,7 @@ def get_decks(): 'factor': entry['factor'], 'reps': entry['reps'], 'lapses': entry['lapses'], + 'isGraduated': bool(entry['isGraduated']) # isGraduated hinzufügen } decks[deckname]['images'].append(image) @@ -442,16 +444,48 @@ def update_box(box_id): factor = data.get('factor', 2.5) reps = data.get('reps', 0) lapses = data.get('lapses', 0) + is_graduated = data.get('isGraduated') # Neues Feld aus den Daten extrahieren + + # Validierung des isGraduated-Feldes + if is_graduated is not None: + if isinstance(is_graduated, bool): + is_graduated_int = int(is_graduated) + else: + return jsonify({'error': 'isGraduated muss ein Boolean-Wert sein'}), 400 + else: + is_graduated_int = None # Kein Update für isGraduated conn = get_db_connection() cursor = conn.cursor() - cursor.execute(""" - UPDATE Deck - SET due = ?, ivl = ?, factor = ?, reps = ?, lapses = ? - WHERE id = ? - """, (due, ivl, factor, reps, lapses, box_id)) - conn.commit() - conn.close() + + try: + if is_graduated_int is not None: + cursor.execute(""" + UPDATE Deck + SET due = ?, ivl = ?, factor = ?, reps = ?, lapses = ?, isGraduated = ? + WHERE id = ? + """, (due, ivl, factor, reps, lapses, is_graduated_int, box_id)) + else: + cursor.execute(""" + UPDATE Deck + SET due = ?, ivl = ?, factor = ?, reps = ?, lapses = ? + WHERE id = ? + """, (due, ivl, factor, reps, lapses, box_id)) + + if cursor.rowcount == 0: + conn.close() + return jsonify({'error': 'Box nicht gefunden'}), 404 + + conn.commit() + conn.close() + return jsonify({'status': 'success'}), 200 + + except sqlite3.Error as e: + conn.rollback() + conn.close() + logger.error(f"Datenbankfehler beim Aktualisieren der Box '{box_id}': {e}") + return jsonify({'error': 'Database error', 'details': str(e)}), 500 + return jsonify({'status': 'success'}), 200 # Sicherstellen, dass die Datenbank existiert