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:
@@ -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}',
|
||||
|
||||
Reference in New Issue
Block a user