diff --git a/app/config.py b/app/config.py index e69de29..8199bf0 100644 --- a/app/config.py +++ b/app/config.py @@ -0,0 +1,16 @@ +from pydantic_settings import BaseSettings + +class Settings(BaseSettings): + + app_name: str = "DagemarkBackend" + + app_version: str = "0.1" + + database_url: str = "sqlite:///data/app.db" + + debug: bool = True + + class Config: + env_file = ".env" + +settings = Settings() \ No newline at end of file diff --git a/app/database.py b/app/database.py index e69de29..3bbecde 100644 --- a/app/database.py +++ b/app/database.py @@ -0,0 +1,11 @@ +from sqlmodel import SQLModel, create_engine + +from app.config import settings + +engine = create_engine( + settings.database_url, + connect_args={"check_same_thread": False}, +) + +def create_database(): + SQLModel.metadata.create_all(engine) \ No newline at end of file diff --git a/app/logic/.temp b/app/logic/.temp deleted file mode 100644 index e69de29..0000000 diff --git a/app/logic/example_logic.py b/app/logic/example_logic.py new file mode 100644 index 0000000..a9f8488 --- /dev/null +++ b/app/logic/example_logic.py @@ -0,0 +1,5 @@ +def get_example_message(): + + return { + "message": "Hello, this is an example response :]" + } \ No newline at end of file diff --git a/app/main.py b/app/main.py index e69de29..7fad475 100644 --- a/app/main.py +++ b/app/main.py @@ -0,0 +1,18 @@ +from fastapi import FastAPI + +from app.config import settings +from app.database import create_database +from app.routers import example_route + +app = FastAPI( + title=settings.app_name, + version=settings.app_version +) + +@app.on_event("startup") +def startup(): + create_database() + +app.include_router( + example_route.router +) \ No newline at end of file diff --git a/app/models/.temp b/app/models/.temp deleted file mode 100644 index e69de29..0000000 diff --git a/app/models/example_model.py b/app/models/example_model.py new file mode 100644 index 0000000..5ea8f94 --- /dev/null +++ b/app/models/example_model.py @@ -0,0 +1,12 @@ +from sqlmodel import SQLModel, Field + +class ExampleModel(SQLModel, table=True): + + id: int | None = Field( + default=None, + primary_key=True + ) + + example_text: str + + example_number: int \ No newline at end of file diff --git a/app/models/init.py b/app/models/init.py new file mode 100644 index 0000000..8ff1351 --- /dev/null +++ b/app/models/init.py @@ -0,0 +1 @@ +from .example_model import ExampleModel \ No newline at end of file diff --git a/app/routers/.temp b/app/routers/.temp deleted file mode 100644 index e69de29..0000000 diff --git a/app/routers/example_route.py b/app/routers/example_route.py new file mode 100644 index 0000000..c153c17 --- /dev/null +++ b/app/routers/example_route.py @@ -0,0 +1,15 @@ +from fastapi import APIRouter + +from app.logic.example_logic import get_example_message + +router = APIRouter( + prefix="/example", + tags=["Example"] +) + +@router.get("/") +def get_example(): + + return( + get_example_message() + ) \ No newline at end of file diff --git a/src/dagemark_backend/__init__.py b/src/dagemark_backend/__init__.py new file mode 100644 index 0000000..4f0fbf1 --- /dev/null +++ b/src/dagemark_backend/__init__.py @@ -0,0 +1,2 @@ +def main() -> None: + print("Hello from dagemark-backend!")