Spaces:
Sleeping
Sleeping
shri-jai
commited on
Commit
·
fa1cbc5
1
Parent(s):
198a2e8
chore: app versioning
Browse files- src/core/models.py +4 -0
- src/core/router.py +23 -0
- src/core/schemas.py +4 -1
- src/main.py +2 -1
src/core/models.py
CHANGED
|
@@ -26,6 +26,10 @@ class Emotion(str, Enum):
|
|
| 26 |
ANXIOUS = "anxious"
|
| 27 |
SAD = "sad"
|
| 28 |
FRUSTRATED = "frustrated"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
class Users(SQLModel, table=True):
|
| 31 |
__tablename__ = "users"
|
|
|
|
| 26 |
ANXIOUS = "anxious"
|
| 27 |
SAD = "sad"
|
| 28 |
FRUSTRATED = "frustrated"
|
| 29 |
+
|
| 30 |
+
class AppVersion(SQLModel, table=True):
|
| 31 |
+
__tablename__ = "app_version"
|
| 32 |
+
version: str = Field(primary_key=True)
|
| 33 |
|
| 34 |
class Users(SQLModel, table=True):
|
| 35 |
__tablename__ = "users"
|
src/core/router.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from fastapi import APIRouter, Depends
|
| 2 |
+
from sqlmodel.ext.asyncio.session import AsyncSession
|
| 3 |
+
from sqlmodel import select
|
| 4 |
+
|
| 5 |
+
from src.core.database import get_async_session
|
| 6 |
+
from src.core.schemas import BaseResponse
|
| 7 |
+
from src.core.models import AppVersion
|
| 8 |
+
from .schemas import AppConfigResponse
|
| 9 |
+
|
| 10 |
+
router = APIRouter(prefix="/app", tags=["AppConfig"])
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
@router.get("/config", response_model=BaseResponse[AppConfigResponse])
|
| 14 |
+
async def get_app_config(
|
| 15 |
+
session: AsyncSession = Depends(get_async_session),
|
| 16 |
+
):
|
| 17 |
+
result = await session.exec(select(AppVersion))
|
| 18 |
+
row = result.first()
|
| 19 |
+
|
| 20 |
+
min_version = row.version if row else "0.0.0"
|
| 21 |
+
|
| 22 |
+
return BaseResponse(status_code=200,
|
| 23 |
+
data=AppConfigResponse(version=min_version))
|
src/core/schemas.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
from typing import Generic, TypeVar
|
| 2 |
-
|
| 3 |
from pydantic import BaseModel
|
| 4 |
|
| 5 |
T = TypeVar("T")
|
|
@@ -8,3 +8,6 @@ T = TypeVar("T")
|
|
| 8 |
class BaseResponse(BaseModel, Generic[T]):
|
| 9 |
status_code: int
|
| 10 |
data: T
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from typing import Generic, TypeVar
|
| 2 |
+
from sqlmodel import SQLModel
|
| 3 |
from pydantic import BaseModel
|
| 4 |
|
| 5 |
T = TypeVar("T")
|
|
|
|
| 8 |
class BaseResponse(BaseModel, Generic[T]):
|
| 9 |
status_code: int
|
| 10 |
data: T
|
| 11 |
+
|
| 12 |
+
class AppConfigResponse(SQLModel):
|
| 13 |
+
version: str
|
src/main.py
CHANGED
|
@@ -10,6 +10,7 @@ from src.notifications.router import router as notifications_router
|
|
| 10 |
from src.payslip.router import router as payslip_router
|
| 11 |
from src.profile.router import router as profile
|
| 12 |
from src.journaling.router import router as journal
|
|
|
|
| 13 |
from fastapi.staticfiles import StaticFiles
|
| 14 |
|
| 15 |
|
|
@@ -23,7 +24,7 @@ async def on_startup():
|
|
| 23 |
|
| 24 |
app.include_router(home_router, prefix="/home", tags=["Home"])
|
| 25 |
|
| 26 |
-
|
| 27 |
|
| 28 |
app.include_router(profile)
|
| 29 |
|
|
|
|
| 10 |
from src.payslip.router import router as payslip_router
|
| 11 |
from src.profile.router import router as profile
|
| 12 |
from src.journaling.router import router as journal
|
| 13 |
+
from src.core.router import router as app_config
|
| 14 |
from fastapi.staticfiles import StaticFiles
|
| 15 |
|
| 16 |
|
|
|
|
| 24 |
|
| 25 |
app.include_router(home_router, prefix="/home", tags=["Home"])
|
| 26 |
|
| 27 |
+
app.include_router(app_config)
|
| 28 |
|
| 29 |
app.include_router(profile)
|
| 30 |
|