Es scheint, dass Sie eine Reihe von Dateien und Verzeichnissen in einem Backend-Projekt bearbeitet haben. Hier ist eine Zusammenfassung der Änderungen:
This commit is contained in:
@@ -1971,7 +1971,7 @@ class PlugStatusLog(Base):
|
||||
Erstellt einen neuen Status-Log-Eintrag für eine Steckdose.
|
||||
|
||||
Args:
|
||||
printer_id: ID des zugehörigen Druckers
|
||||
printer_id: ID des zugehörigen Druckers (ERFORDERLICH!)
|
||||
status: Status der Steckdose ('connected', 'disconnected', 'on', 'off')
|
||||
source: Quelle der Statusänderung ('system', 'manual', 'api', 'scheduler')
|
||||
user_id: ID des Benutzers (bei manueller Änderung)
|
||||
@@ -1987,8 +1987,27 @@ class PlugStatusLog(Base):
|
||||
Returns:
|
||||
Das erstellte PlugStatusLog-Objekt
|
||||
"""
|
||||
# VALIDIERUNG: printer_id ist erforderlich
|
||||
if printer_id is None:
|
||||
error_msg = "printer_id ist erforderlich für PlugStatusLog.log_status_change"
|
||||
logger.error(error_msg)
|
||||
raise ValueError(error_msg)
|
||||
|
||||
if not status:
|
||||
error_msg = "status ist erforderlich für PlugStatusLog.log_status_change"
|
||||
logger.error(error_msg)
|
||||
raise ValueError(error_msg)
|
||||
|
||||
try:
|
||||
with get_cached_session() as session:
|
||||
# Verwende get_db_session() für bessere Kontrolle
|
||||
db_session = get_db_session()
|
||||
try:
|
||||
# Prüfe ob Drucker existiert
|
||||
printer = db_session.query(Printer).filter(Printer.id == printer_id).first()
|
||||
if not printer:
|
||||
logger.warning(f"Drucker mit ID {printer_id} nicht gefunden für PlugStatusLog")
|
||||
# Trotzdem loggen, aber mit Warnung
|
||||
|
||||
log_entry = cls(
|
||||
printer_id=printer_id,
|
||||
status=status,
|
||||
@@ -2001,20 +2020,28 @@ class PlugStatusLog(Base):
|
||||
notes=notes,
|
||||
response_time_ms=response_time_ms,
|
||||
error_message=error_message,
|
||||
firmware_version=firmware_version
|
||||
firmware_version=firmware_version,
|
||||
timestamp=datetime.now()
|
||||
)
|
||||
|
||||
session.add(log_entry)
|
||||
session.commit()
|
||||
db_session.add(log_entry)
|
||||
db_session.commit()
|
||||
|
||||
# Cache invalidieren
|
||||
invalidate_model_cache("PlugStatusLog")
|
||||
|
||||
logger.info(f"Steckdosen-Status geloggt: Drucker {printer_id}, Status: {status}, Quelle: {source}")
|
||||
logger.info(f"✅ Steckdosen-Status geloggt: Drucker {printer_id}, Status: {status}, Quelle: {source}")
|
||||
return log_entry
|
||||
|
||||
except Exception as db_error:
|
||||
logger.error(f"❌ Datenbankfehler beim Loggen des Steckdosen-Status: {str(db_error)}")
|
||||
db_session.rollback()
|
||||
raise db_error
|
||||
finally:
|
||||
db_session.close()
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Fehler beim Loggen des Steckdosen-Status: {str(e)}")
|
||||
logger.error(f"❌ Allgemeiner Fehler beim Loggen des Steckdosen-Status: {str(e)}")
|
||||
raise e
|
||||
|
||||
@classmethod
|
||||
|
Reference in New Issue
Block a user