Skip to content

Fix: SyntaxError in `api_manager.py`

Compare
Choose a tag to compare
@bumseb1ene bumseb1ene released this 19 Oct 18:00
· 2 commits to main since this release

Changelog

Fix: SyntaxError in api_manager.py

  • Problem behoben: Ein SyntaxError trat auf, weil das Schlüsselwort async with außerhalb einer asynchronen Funktion verwendet wurde.
  • Datei betroffen: api_manager.py
  • Änderungen:
    • Die Methode report_api_version wurde von einer asynchronen Funktion zu einer synchronen Funktion umgewandelt.
      • Vorher: Verwendung von async def und aiohttp für asynchrone HTTP-Anfragen.
      • Nachher: Verwendung von def und requests für synchrone HTTP-Anfragen.
    • Entfernt den Import von aiohttp, da es nicht mehr benötigt wird.
    • Hinzugefügt oder sichergestellt, dass import requests und import logging am Anfang der Datei vorhanden sind.
    • Fehlerbehandlung und Logging wurden verbessert, um mögliche Ausnahmen zu erfassen und zu protokollieren.

Details der Änderung in api_manager.py:

  • Alte Version der Methode report_api_version:

    async def report_api_version(self, client_id):
        url = "https://api.hackletloose.eu/update_client_version"
        timestamp = datetime.datetime.utcnow().isoformat()
        data = {
            'client_id': client_id,
            'api_version': self.api_version,
            'timestamp': timestamp
        }
        async with aiohttp.ClientSession() as session:
            async with session.post(url, json=data) as response:
                if response.status == 200:
                    logging.info(f"API-Version {self.api_version} erfolgreich gemeldet für Client {client_id} mit Timestamp {timestamp}")
                else:
                    logging.error(f"Fehler beim Melden der API-Version {self.api_version} für Client {client_id} mit Timestamp {timestamp}")
  • Neue Version der Methode report_api_version:

    def report_api_version(self, client_id):
        url = "https://api.hackletloose.eu/update_client_version"
        timestamp = datetime.datetime.utcnow().isoformat()
        data = {
            'client_id': client_id,
            'api_version': self.api_version,
            'timestamp': timestamp
        }
        try:
            response = requests.post(url, json=data)
            if response.status_code == 200:
                logging.info(f"API-Version {self.api_version} erfolgreich gemeldet für Client {client_id} mit Timestamp {timestamp}")
            else:
                logging.error(f"Fehler beim Melden der API-Version {self.api_version} für Client {client_id} mit Timestamp {timestamp}")
        except Exception as e:
            logging.error(f"Fehler beim Melden der API-Version: {e}")

Konsistenz und Verbesserungen

  • Konsistente Nutzung von HTTP-Bibliotheken: Alle HTTP-Anfragen innerhalb der APIClient-Klasse verwenden nun das requests-Modul, was die Wartbarkeit und Lesbarkeit des Codes verbessert.
  • Fehlerbehandlung: Verbesserte Fehlerbehandlung in der Methode report_api_version, um Ausnahmen zu protokollieren und unerwartete Abstürze zu vermeiden.
  • Entfernte unnötige Importe: import aiohttp wurde entfernt, da es nicht mehr benötigt wird.
  • Logging: Zusätzliche Logging-Statements wurden hinzugefügt, um den Status von HTTP-Anfragen und möglichen Fehlern besser nachverfolgen zu können.