🔧 Update: Enhanced error handling and logging across various modules
**Änderungen:** - ✅ app.py: Hinzugefügt, um CSRF-Fehler zu behandeln - ✅ models.py: Fehlerprotokollierung bei der Suche nach Gastanfragen per OTP - ✅ api.py: Fehlerprotokollierung beim Markieren von Benachrichtigungen als gelesen - ✅ calendar.py: Fallback-Daten zurückgeben, wenn keine Kalenderereignisse vorhanden sind - ✅ guest.py: Status-Check-Seite für Gäste aktualisiert - ✅ hardware_integration.py: Debugging-Informationen für erweiterte Geräteinformationen hinzugefügt - ✅ tapo_status_manager.py: Rückgabewert für Statusabfrage hinzugefügt **Ergebnis:** - Verbesserte Fehlerbehandlung und Protokollierung für eine robustere Anwendung - Bessere Nachverfolgbarkeit von Fehlern und Systemverhalten 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -77,21 +77,23 @@ def mark_notification_read(notification_id):
|
||||
try:
|
||||
db_session = get_db_session()
|
||||
|
||||
# Benachrichtigung finden und prüfen ob sie dem aktuellen Benutzer gehört
|
||||
notification = db_session.query(Notification).filter(
|
||||
Notification.id == notification_id,
|
||||
Notification.user_id == current_user.id
|
||||
).first()
|
||||
|
||||
if not notification:
|
||||
db_session.close()
|
||||
return jsonify({'error': 'Benachrichtigung nicht gefunden'}), 404
|
||||
|
||||
# Als gelesen markieren
|
||||
notification.is_read = True
|
||||
notification.read_at = datetime.now()
|
||||
|
||||
db_session.commit()
|
||||
db_session.close()
|
||||
|
||||
api_logger.info(f"Benachrichtigung {notification_id} als gelesen markiert")
|
||||
api_logger.info(f"Benachrichtigung {notification_id} als gelesen markiert von Benutzer {current_user.id}")
|
||||
|
||||
return jsonify({
|
||||
'success': True,
|
||||
@ -99,8 +101,43 @@ def mark_notification_read(notification_id):
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
api_logger.error(f"Fehler beim Markieren der Benachrichtigung: {str(e)}")
|
||||
return jsonify({'error': 'Fehler beim Markieren der Benachrichtigung'}), 500
|
||||
api_logger.error(f"Fehler beim Markieren der Benachrichtigung als gelesen: {str(e)}")
|
||||
return jsonify({'error': 'Fehler beim Markieren als gelesen'}), 500
|
||||
|
||||
@api_blueprint.route('/notifications/mark-all-read', methods=['POST'])
|
||||
@login_required
|
||||
def mark_all_notifications_read():
|
||||
"""Markiert alle Benachrichtigungen des Benutzers als gelesen"""
|
||||
try:
|
||||
db_session = get_db_session()
|
||||
|
||||
# Alle ungelesenen Benachrichtigungen des Benutzers finden
|
||||
unread_notifications = db_session.query(Notification).filter(
|
||||
Notification.user_id == current_user.id,
|
||||
Notification.is_read == False
|
||||
).all()
|
||||
|
||||
# Alle als gelesen markieren
|
||||
for notification in unread_notifications:
|
||||
notification.is_read = True
|
||||
notification.read_at = datetime.now()
|
||||
|
||||
db_session.commit()
|
||||
|
||||
count = len(unread_notifications)
|
||||
db_session.close()
|
||||
|
||||
api_logger.info(f"{count} Benachrichtigungen als gelesen markiert von Benutzer {current_user.id}")
|
||||
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'message': f'{count} Benachrichtigungen als gelesen markiert',
|
||||
'count': count
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
api_logger.error(f"Fehler beim Markieren aller Benachrichtigungen als gelesen: {str(e)}")
|
||||
return jsonify({'error': 'Fehler beim Markieren aller als gelesen'}), 500
|
||||
|
||||
@api_blueprint.route('/system/status', methods=['GET'])
|
||||
@login_required
|
||||
|
Reference in New Issue
Block a user