feat: add database session dependency for FastAPI routes

- Introduced a new dependency in `middleware/dependencies.py` to provide an asynchronous database session using SQLModel.
- This dependency can be utilized in route functions to facilitate database operations.
This commit is contained in:
2025-11-27 22:18:50 +08:00
parent b364b740ca
commit b02a4638da
25 changed files with 909 additions and 748 deletions

View File

@@ -1,5 +1,7 @@
from fastapi import APIRouter, Depends
from middleware.auth import AdminRequired
from middleware.dependencies import SessionDep
from models import User
from models.response import ResponseModel
@@ -273,31 +275,30 @@ def router_admin_get_users(
dependencies=[Depends(AdminRequired)],
)
async def router_admin_create_user(
user: User
session: SessionDep,
user: User,
) -> ResponseModel:
"""
创建一个新的用户,设置用户名、密码等信息。
Returns:
ResponseModel: 包含创建结果的响应模型。
"""
try:
existing_user = await User.get(email=user.email)
existing_user = await User.get(session, User.username == user.username)
if existing_user:
return ResponseModel(
code=400,
message="User with this email already exists."
code=400,
message="User with this username already exists."
)
await user.create(**user.model_dump())
await user.save(session)
except Exception as e:
return ResponseModel(
code=500,
message=str(e)
)
else:
return ResponseModel(
data=user.model_dump()
)
return ResponseModel(data=user.model_dump())
@admin_user_router.patch(
path='/{user_id}',