diff --git a/deck_endpoints.py b/deck_endpoints.py index 9efb262..313c6c0 100644 --- a/deck_endpoints.py +++ b/deck_endpoints.py @@ -217,6 +217,41 @@ def delete_deck(deckname): logger.error(f"Datenbankfehler beim Löschen des Decks '{deckname}': {e}") return jsonify({'error': 'Database error', 'details': str(e)}), 500 + +@deck_bp.route('/api/decks//rename', methods=['PUT']) +def rename_deck(old_deckname): + conn = get_db_connection() + cursor = conn.cursor() + try: + # Überprüfen, ob das Deck existiert + cursor.execute('SELECT COUNT(*) as count FROM Deck WHERE deckname = ?', (old_deckname,)) + result = cursor.fetchone() + if result['count'] == 0: + conn.close() + return jsonify({'error': 'Deck not found'}), 404 + + # Neuen Decknamen aus dem Request-Body holen + new_deckname = request.json.get('newDeckName') + if not new_deckname: + conn.close() + return jsonify({'error': 'New deck name is required'}), 400 + + # Überprüfen, ob der neue Deckname bereits existiert + cursor.execute('SELECT COUNT(*) as count FROM Deck WHERE deckname = ?', (new_deckname,)) + result = cursor.fetchone() + if result['count'] > 0: + conn.close() + return jsonify({'error': 'Deck with the new name already exists'}), 409 + + # Deck umbenennen + cursor.execute('UPDATE Deck SET deckname = ? WHERE deckname = ?', (new_deckname, old_deckname)) + conn.commit() + conn.close() + return jsonify({'status': 'success', 'message': 'Deck renamed successfully'}), 200 + except sqlite3.Error as e: + conn.close() + logger.error(f"Datenbankfehler beim Umbenennen des Decks '{old_deckname}': {e}") + return jsonify({'error': 'Database error', 'details': str(e)}), 500 # ------ # Image - POST, GET, DELETE # ------