Refactor backend MVC (#2)
* docs(requirements.txt):升级fastapi、uvicorn版本 * refactor(user):重构用户router、service * ref: role list api * doc: 1 * refactor(backend): mvc ref
This commit is contained in:
0
backend/router/__init__.py
Normal file
0
backend/router/__init__.py
Normal file
19
backend/router/auth.py
Normal file
19
backend/router/auth.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from fastapi import APIRouter, WebSocket
|
||||
|
||||
from schemas import common as BaseSchema
|
||||
from service import auth as AuthService
|
||||
|
||||
router = APIRouter(tags=["公共"])
|
||||
|
||||
|
||||
LoginResult = BaseSchema.Response[BaseSchema.LoginResult]
|
||||
|
||||
|
||||
@router.post("/login", summary="登录", response_model=LoginResult)
|
||||
async def login(data: BaseSchema.LoginForm):
|
||||
return await AuthService.user_login(data)
|
||||
|
||||
|
||||
@router.websocket("/ws", name="系统信息")
|
||||
async def get_system_info(ws: WebSocket):
|
||||
await AuthService.system_info(ws)
|
30
backend/router/menu.py
Normal file
30
backend/router/menu.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from schemas import common as BaseSchema
|
||||
from schemas import menu as MenuSchema
|
||||
from service.menu import service as MenuService
|
||||
|
||||
router = APIRouter(prefix="/menu", tags=["菜单管理"])
|
||||
|
||||
Response = BaseSchema.Response
|
||||
|
||||
|
||||
@router.post("", summary="菜单新增", response_model=Response[MenuSchema.MenuRead])
|
||||
async def menu_add(data: MenuSchema.MenuIn):
|
||||
return await MenuService.create_item(data)
|
||||
|
||||
|
||||
@router.get("", summary="菜单列表", response_model=Response)
|
||||
async def menu_arr():
|
||||
return await MenuService.get_items()
|
||||
|
||||
|
||||
@router.delete("/{pk}", summary="菜单删除", response_model=Response)
|
||||
async def menu_del(pk: int):
|
||||
return await MenuService.delete_item(pk)
|
||||
|
||||
|
||||
@router.put("/{pk}", summary="菜单更新", response_model=Response)
|
||||
async def menu_put(pk: int, data: MenuSchema.MenuIn):
|
||||
"""更新菜单"""
|
||||
return await MenuService.update_item(pk, data)
|
46
backend/router/role.py
Normal file
46
backend/router/role.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from fastapi import APIRouter, Query
|
||||
|
||||
from schemas import common as BaseSchema
|
||||
from schemas import role as RoleSchema
|
||||
from service.role import service as RoleService
|
||||
|
||||
router = APIRouter(prefix="/role", tags=["角色管理"])
|
||||
|
||||
Response = BaseSchema.Response
|
||||
ListAll = BaseSchema.ListAll
|
||||
|
||||
role_list_schema = ListAll[list[RoleSchema.RoleRead]]
|
||||
|
||||
|
||||
@router.get("", summary="角色列表", response_model=Response[role_list_schema])
|
||||
async def role_list(
|
||||
offset: int = Query(default=1, description="偏移量-页码"),
|
||||
limit: int = Query(default=10, description="数据量"),
|
||||
):
|
||||
return await RoleService.get_items(offset, limit)
|
||||
|
||||
|
||||
@router.post("/query", summary="角色查询", response_model=Response[role_list_schema])
|
||||
async def role_query(query: RoleSchema.RoleQuery):
|
||||
return await RoleService.query_items(query)
|
||||
|
||||
|
||||
@router.post("", summary="角色新增", response_model=Response[RoleSchema.RoleInfo])
|
||||
async def role_create(data: RoleSchema.RoleIn):
|
||||
return await RoleService.create_item(data)
|
||||
|
||||
|
||||
@router.get("/{rid}/menu", summary="查询角色拥有权限", response_model=Response)
|
||||
async def role_has_menu(rid: int):
|
||||
return await RoleService.has_tree_menus(rid)
|
||||
|
||||
|
||||
@router.delete("/{pk}", summary="角色删除", response_model=Response)
|
||||
async def role_del(pk: int):
|
||||
return await RoleService.delete_item(pk)
|
||||
|
||||
|
||||
@router.put("/{pk}", summary="角色更新", response_model=Response)
|
||||
async def role_put(pk: int, data: RoleSchema.RoleIn):
|
||||
"""更新角色"""
|
||||
return await RoleService.update_item(pk, data)
|
53
backend/router/user.py
Normal file
53
backend/router/user.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
|
||||
from core.security import check_permissions
|
||||
from schemas import common as BaseSchema
|
||||
from schemas import user as UserSchema
|
||||
from service.user import service as UserService
|
||||
|
||||
router = APIRouter(prefix="/user", tags=["用户管理"])
|
||||
|
||||
Response = BaseSchema.Response
|
||||
ListAll = BaseSchema.ListAll
|
||||
|
||||
user_list_schema = ListAll[list[UserSchema.UserRead]]
|
||||
|
||||
|
||||
@router.get("", summary="用户列表", response_model=Response[user_list_schema])
|
||||
async def user_list(
|
||||
offset: int = Query(default=1, description="偏移量-页码"),
|
||||
limit: int = Query(default=10, description="数据量"),
|
||||
):
|
||||
return await UserService.get_items(offset, limit)
|
||||
|
||||
|
||||
@router.post("/query", summary="用户查询", response_model=Response[user_list_schema])
|
||||
async def user_query(query: UserSchema.UserQuery):
|
||||
return await UserService.query_items(query)
|
||||
|
||||
|
||||
@router.post("", summary="用户新增", response_model=Response[UserSchema.UserRead])
|
||||
async def user_create(data: UserSchema.UserAdd):
|
||||
return await UserService.create_item(data)
|
||||
|
||||
|
||||
@router.delete("/{pk}", summary="用户删除", response_model=Response)
|
||||
async def user_delete(pk: int):
|
||||
return await UserService.delete_item(pk)
|
||||
|
||||
|
||||
@router.get("/{pk}", summary="用户信息", response_model=Response[UserSchema.UserInfo])
|
||||
async def user_info(pk: int):
|
||||
return await UserService.get_item(pk)
|
||||
|
||||
|
||||
@router.put("/{pk}", summary="用户更新", response_model=Response)
|
||||
async def user_update(pk: int, data: UserSchema.UserPut):
|
||||
return await UserService.update_item(pk, data)
|
||||
|
||||
|
||||
@router.put("/role/{rid}", summary="用户切换角色", response_model=Response)
|
||||
async def user_change_role(
|
||||
rid: int, user: UserSchema.UserRead = Depends(check_permissions)
|
||||
):
|
||||
return await UserService.change_current_role(user.id, rid)
|
Reference in New Issue
Block a user