f1tness_parser/app/config.py

38 lines
1.2 KiB
Python

from pydantic_settings import BaseSettings
from typing import Optional
class Settings(BaseSettings):
# Base app settings
app_name: str = "F1tness Parser API"
version: str = "0.0.1"
debug: bool = False
# Postgres database settings
POSTGRES_DATABASE_URL: Optional[str] = None
POSTGRES_DATABASE_HOST: str = "localhost"
POSTGRES_DATABASE_PORT: int = 5432
POSTGRES_DATABASE_NAME: str = "f1tness_db"
POSTGRES_DATABASE_USER: str = "postgres"
POSTGRES_DATABASE_PASSWORD: str = "password"
class Config:
env_file = ".env"
def get_postgres_database_url(self, async_driver: bool = True) -> str:
"""Method for receiving relational database URL"""
# If POSTGRES_DATABASE_URL is somehow set in env file - return it
if self.POSTGRES_DATABASE_URL:
return self.POSTGRES_DATABASE_URL
driver = "postgresql+asyncpg" if async_driver else "postgresql"
return (
f"{driver}://{self.POSTGRES_DATABASE_USER}:{self.POSTGRES_DATABASE_PASSWORD}"
f"@{self.POSTGRES_DATABASE_HOST}"
f":{self.POSTGRES_DATABASE_PORT}/{self.POSTGRES_DATABASE_NAME}"
)
settings = Settings()