From 11724ad0d953c52ea48d6a17b2a74c2ac9ef76d0 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Thu, 28 May 2026 13:10:01 +0200 Subject: [PATCH] improve error handling --- src/elm/services/DatabaseService.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/elm/services/DatabaseService.py b/src/elm/services/DatabaseService.py index 4fa5985..2ea6e11 100644 --- a/src/elm/services/DatabaseService.py +++ b/src/elm/services/DatabaseService.py @@ -1,8 +1,10 @@ import logging +import sys from beanie import init_beanie from pymongo import AsyncMongoClient from pymongo.asynchronous.collection import AsyncCollection +from pymongo.errors import ServerSelectionTimeoutError, OperationFailure from elm.types import User, Transaction, Ticket, Seat, CateringTypes from elm.types.ConfigurationTypes import DatabaseConfiguration @@ -30,6 +32,15 @@ class DatabaseService: if self._client is None: self._client = AsyncMongoClient(mongo_uri) + try: + await self._client.admin.command("ping") + except ServerSelectionTimeoutError: + print("Could not connect to mongodb") + sys.exit(1) + except OperationFailure: + print("Authentication with mongodb failed") + sys.exit(1) + self._database = self._client[ self._db_config.database_name ]