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