新增用户应用管理
This commit is contained in:
@@ -16,6 +16,8 @@ from app.api.v1.video_engines import router as video_engines_router
|
||||
from app.api.v1.image_engines import router as image_engines_router
|
||||
from app.api.v1.generation_ai import router as generation_ai_router
|
||||
from app.api.v1.test import router as test_router
|
||||
from app.api.v1.user_oauth import router as user_oauth_router
|
||||
from app.api.v1.user_oauth_app import router as user_oauth_app_router
|
||||
|
||||
api_router = APIRouter()
|
||||
api_router.include_router(auth_router)
|
||||
@@ -34,3 +36,5 @@ api_router.include_router(video_engines_router)
|
||||
api_router.include_router(image_engines_router)
|
||||
api_router.include_router(generation_ai_router)
|
||||
api_router.include_router(test_router)
|
||||
api_router.include_router(user_oauth_router)
|
||||
api_router.include_router(user_oauth_app_router)
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, Query, status
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.dependencies import get_admin_user, get_db
|
||||
from app.models.user import User
|
||||
from app.schemas.user_oauth_app import UserOAuthAppCreate, UserOAuthAppOut, UserOAuthAppUpdate
|
||||
from app.services.user_oauth_app_service import (
|
||||
create_user_oauth_app,
|
||||
delete_user_oauth_app,
|
||||
get_user_oauth_app_by_id,
|
||||
list_user_oauth_apps,
|
||||
update_user_oauth_app,
|
||||
)
|
||||
|
||||
router = APIRouter(prefix="/user-oauth-apps", tags=["oauth"])
|
||||
|
||||
|
||||
@router.get("/list", summary="获取用户授权应用列表")
|
||||
async def list_apps(
|
||||
page: int = Query(1, ge=1),
|
||||
page_size: int = Query(20, ge=1, le=100),
|
||||
open_type: int | None = Query(None, ge=1, le=10, description="开户方式"),
|
||||
status: int | None = Query(None, ge=1, le=2, description="应用状态,1=正常,2=禁用"),
|
||||
admin: User = Depends(get_admin_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
app_id: str | None = Query(None, max_length=255, description="应用id"),
|
||||
):
|
||||
result = await list_user_oauth_apps(db, page, page_size, open_type, status, admin.id, app_id)
|
||||
return {
|
||||
"total": result["total"],
|
||||
"page": result["page"],
|
||||
"page_size": result["page_size"],
|
||||
"items": [UserOAuthAppOut.model_validate(item) for item in result["items"]],
|
||||
}
|
||||
|
||||
|
||||
@router.post("/create", summary="创建用户授权应用", response_model=UserOAuthAppOut, status_code=status.HTTP_201_CREATED)
|
||||
async def create_app(
|
||||
req: UserOAuthAppCreate,
|
||||
admin: User = Depends(get_admin_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
try:
|
||||
app = await create_user_oauth_app(db, req.app_id, req.secret, req.open_type, admin.id)
|
||||
return app
|
||||
except ValueError as e:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=str(e),
|
||||
)
|
||||
|
||||
|
||||
@router.get("/read/{id}", summary="获取用户授权应用详情", response_model=UserOAuthAppOut)
|
||||
async def get_app(
|
||||
id: str,
|
||||
admin: User = Depends(get_admin_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
app = await get_user_oauth_app_by_id(db, id)
|
||||
if not app:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="应用不存在",
|
||||
)
|
||||
return app
|
||||
|
||||
|
||||
@router.post("/update/{id}", summary="更新用户授权应用", response_model=UserOAuthAppOut)
|
||||
async def update_app(
|
||||
id: str,
|
||||
req: UserOAuthAppUpdate,
|
||||
admin: User = Depends(get_admin_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
app = await update_user_oauth_app(db, id, req.secret, req.open_type, req.status, admin.id)
|
||||
if not app:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="应用不存在",
|
||||
)
|
||||
return app
|
||||
|
||||
|
||||
@router.get("/delete/{id}", summary="删除用户授权应用")
|
||||
async def delete_app(
|
||||
id: str,
|
||||
admin: User = Depends(get_admin_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
success = await delete_user_oauth_app(db, id, admin.id)
|
||||
if not success:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="应用不存在",
|
||||
)
|
||||
return {"message": "删除成功"}
|
||||
Reference in New Issue
Block a user