Files
dknog-membership/admidio/settings.py
Allan Eising c2ceaeb989
Some checks failed
release-tag / release-image (push) Failing after 3m50s
Initial commit
2025-03-03 21:59:08 +01:00

43 lines
1.2 KiB
Python

"""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")