32 lines
1.2 KiB
Python
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)
|