from typing import Any, List from fastapi import APIRouter, Body, Depends, HTTPException, Request from sqlalchemy.orm import Session import crud, models, schemas from api import deps router = APIRouter() @router.get('/') def read_dashboard(project_id: int = Depends(deps.check_project), db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user) ): dashboard = crud.authority.get_my_dashboard(db=db, project_id=project_id, user_id=current_user.id) return dashboard # 新建看板 @router.post("/create-dashboard") def create_dashboard(dashboard_in: schemas.DashboardIn, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user)) -> Any: user_id = current_user.id tree = deps.check_tree(db=db, **dashboard_in.dict(), user_id=user_id) dashboard = crud.dashboard.create_with_dashboard(db=db, obj_in=schemas.DashboardCreate(**dashboard_in.dict()), user_id=current_user.id, ) # 自己创建的拥有权限 crud.authority.create_with_authority(db=db, obj_in=schemas.AuthorityCreate( dashboard_id=dashboard.id, project_id=tree.project_id, authority='rw', space_id=tree.space_id, folder_id=tree.folder_id ), user_id=user_id) return {"msg": "新建成功", 'code': 0} # 删除看板 @router.post("/delete-dashboard") def create_dashboard(dashboard_del: schemas.DashboardDelete, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user)) -> Any: """ 只能删除自己创建的 会级联删除权限表 :param dashboard_del: :param db: :param current_user: :return: """ user_id = current_user.id dashboard = crud.dashboard.delete_my(db, id=dashboard_del.id, user_id=user_id) return {"msg": "删除成功", 'code': 0, 'data': dashboard} @router.post("/create-folder") def create_folder(folder_in: schemas.FolderIn, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user)) -> Any: user_id = current_user.id tree = deps.check_tree(db, **folder_in.dict(), user_id=user_id) folder = crud.folder.create_with_folder(db=db, obj_in=schemas.FolderCreate(**folder_in.dict()), user_id=current_user.id) # 自己创建的拥有权限 crud.authority.create_with_authority(db=db, obj_in=schemas.AuthorityCreate( project_id=tree.project_id, authority='rw', space_id=tree.space_id, folder_id=folder.id ), user_id=user_id) return {"msg": "新建成功", 'code': 0} # 删除文件夹 @router.post("/delete-folder") def delete_folder(folder_del: schemas.FolderDelete, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user)) -> Any: """ 只能删除自己创建的 会级联删除权限表 :param dashboard_del: :param db: :param current_user: :return: """ user_id = current_user.id folder = crud.folder.delete_my(db, id=folder_del.id, user_id=user_id) return {"msg": "删除成功", 'code': 0, 'data': folder} @router.post("/create-space") def create_space(space_in: schemas.SpaceIn, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user)) -> Any: user_id = current_user.id tree = deps.check_tree(db, **space_in.dict(), user_id=user_id) space = crud.space.create_with_space(db=db, obj_in=schemas.SpaceCreate(**space_in.dict()), user_id=user_id) # 自己创建的拥有权限 crud.authority.create_with_authority(db=db, obj_in=schemas.AuthorityCreate( project_id=tree.project_id, authority='rw', space_id=space.id, ), user_id=current_user.id) return {"msg": "新建成功", 'code': 0} # 删除文件夹 @router.post("/delete-space") def delete_space(space_del: schemas.SpaceDelete, db: Session = Depends(deps.get_db), current_user: models.User = Depends(deps.get_current_active_user)) -> Any: """ 只能删除自己创建的 会级联删除权限表 """ user_id = current_user.id space = crud.space.delete_my(db, id=space_del.id, user_id=user_id) return {"msg": "删除成功", 'code': 0, 'data': space}