import sys from pathlib import Path import logging import tomllib from src.ez_lan_manager.types.ConfigurationTypes import DatabaseConfiguration logger = logging.getLogger(__name__.split(".")[-1]) class ConfigurationService: def __init__(self, config_file_path: Path): try: with open(config_file_path, "rb") as config_file: self._config = tomllib.load(config_file) except FileNotFoundError: logger.fatal(f"Could not find config file at \"{config_file_path}\", exiting...") exit(1) def get_database_configuration(self) -> DatabaseConfiguration: try: database_configuration = self._config["database"] return DatabaseConfiguration( db_user=database_configuration["db_user"], db_password=database_configuration["db_password"], db_host=database_configuration["db_host"], db_port=database_configuration["db_port"], db_name=database_configuration["db_name"] ) except KeyError: logger.fatal("Error loading DatabaseConfiguration, exiting...") sys.exit(1)