"""Get settings.""" import os from dotenv import load_dotenv, find_dotenv from .model import AdmidioDBSettings load_dotenv(find_dotenv()) def get_envvar(name: str) -> str: """Get environemnt variable.""" file_var = f"{name}_FILE" if file_name := os.getenv(file_var): with open(file_name, "r") as f: return f.read().strip() if value := os.getenv(name): return value raise RuntimeError(f"Unable to read environment variable {name}") def get_db_settings() -> AdmidioDBSettings: """Get database settings.""" hostname = get_envvar("ADMIDIO_DB_HOST") user = get_envvar("ADMIDIO_DB_USER") password = get_envvar("ADMIDIO_DB_PASSWORD") database = get_envvar("ADMIDIO_DB_NAME") if ":" in hostname: host, port = hostname.split(":") else: host = hostname port = 3306 return AdmidioDBSettings(user, password, host, database, int(port)) def get_stripe_key() -> str: """Get the stripe key.""" return get_envvar("STRIPE_KEY") def get_stripe_price() -> str: return get_envvar("STRIPE_PRICE_ID") def get_domain() -> str: """Get domain.""" return get_envvar("DKNOG_APP_HOST")