Skip to content

Commit b8cf514

Browse files
authored
Create config.py
1 parent fc2d84f commit b8cf514

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

app/core/config.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from pydantic import BaseSettings, Field, PostgresDsn
2+
3+
class Settings(BaseSettings):
4+
APP_NAME: str = "WorkoutAPI"
5+
ENV: str = "development"
6+
POSTGRES_USER: str = Field("workout", env="POSTGRES_USER")
7+
POSTGRES_PASSWORD: str = Field("workout", env="POSTGRES_PASSWORD")
8+
POSTGRES_DB: str = Field("workout_db", env="POSTGRES_DB")
9+
POSTGRES_HOST: str = Field("db", env="POSTGRES_HOST")
10+
POSTGRES_PORT: int = Field(5432, env="POSTGRES_PORT")
11+
POSTGRES_DSN: PostgresDsn | str = Field(
12+
None, env="POSTGRES_DSN"
13+
) # accept full DSN or compose
14+
DATABASE_URL: str | None = Field(None, env="DATABASE_URL")
15+
16+
def __init__(self, **values):
17+
super().__init__(**values)
18+
if not self.POSTGRES_DSN:
19+
self.POSTGRES_DSN = f"postgresql+asyncpg://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}"
20+
21+
class Config:
22+
env_file = ".env"
23+
24+
settings = Settings()

0 commit comments

Comments
 (0)