ezgg-lan-manager/src/ez_lan_manager/services/ConfigurationService.py
2024-08-18 15:15:06 +02:00

32 lines
1.2 KiB
Python

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)